### Nuprl Lemma : cycle-decomp

`∀n:ℕ. ∀f:{f:ℕn ⟶ ℕn| Inj(ℕn;ℕn;f)} .`
`  ∃cycles:ℕn List List`
`   (no_repeats(ℕn List;cycles)`
`   ∧ (∀c1∈cycles.(∀c2∈cycles.(c1 = c2 ∈ (ℕn List)) ∨ l_disjoint(ℕn;c1;c2)))`
`   ∧ (∀c∈cycles.0 < ||c|| ∧ no_repeats(ℕn;c))`
`   ∧ (f = reduce(λc,g. (cycle(c) o g);λx.x;cycles) ∈ (ℕn ⟶ ℕn)))`

Proof

Definitions occuring in Statement :  cycle: `cycle(L)` l_disjoint: `l_disjoint(T;l1;l2)` l_all: `(∀x∈L.P[x])` no_repeats: `no_repeats(T;l)` length: `||as||` reduce: `reduce(f;k;as)` list: `T List` inject: `Inj(A;B;f)` compose: `f o g` int_seg: `{i..j-}` nat: `ℕ` less_than: `a < b` all: `∀x:A. B[x]` exists: `∃x:A. B[x]` or: `P ∨ Q` and: `P ∧ Q` set: `{x:A| B[x]} ` lambda: `λx.A[x]` function: `x:A ⟶ B[x]` natural_number: `\$n` equal: `s = t ∈ T`
Definitions unfolded in proof :  all: `∀x:A. B[x]` uall: `∀[x:A]. B[x]` member: `t ∈ T` nat: `ℕ` implies: `P `` Q` uimplies: `b supposing a` sq_stable: `SqStable(P)` squash: `↓T` exists: `∃x:A. B[x]` and: `P ∧ Q` cand: `A c∧ B` so_lambda: `λ2x.t[x]` prop: `ℙ` int_seg: `{i..j-}` guard: `{T}` ge: `i ≥ j ` lelt: `i ≤ j < k` decidable: `Dec(P)` or: `P ∨ Q` satisfiable_int_formula: `satisfiable_int_formula(fmla)` false: `False` not: `¬A` top: `Top` less_than: `a < b` bool: `𝔹` unit: `Unit` it: `⋅` btrue: `tt` ifthenelse: `if b then t else f fi ` uiff: `uiff(P;Q)` le: `A ≤ B` less_than': `less_than'(a;b)` bfalse: `ff` sq_type: `SQType(T)` bnot: `¬bb` assert: `↑b` nequal: `a ≠ b ∈ T ` so_apply: `x[s]` iff: `P `⇐⇒` Q` rev_implies: `P `` Q` no_repeats: `no_repeats(T;l)` pairwise: `(∀x,y∈L.  P[x; y])` l_disjoint: `l_disjoint(T;l1;l2)` so_lambda: `λ2x y.t[x; y]` subtype_rel: `A ⊆r B` so_apply: `x[s1;s2]` l_exists: `(∃x∈L. P[x])` l_member: `(x ∈ l)` true: `True` l_all: `(∀x∈L.P[x])` compose: `f o g`
Lemmas referenced :  orbit-decomp int_seg_wf decidable__equal_int_seg finite-type-int_seg sq_stable__inject l_all_iff list_wf l_member_wf less_than_wf length_wf no_repeats_wf all_wf equal_wf select_wf int_seg_properties nat_properties decidable__le satisfiable-full-omega-tt intformand_wf intformnot_wf intformle_wf itermConstant_wf itermVar_wf int_formula_prop_and_lemma int_formula_prop_not_lemma int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_var_lemma int_formula_prop_wf decidable__lt intformless_wf int_formula_prop_less_lemma eq_int_wf subtract_wf bool_wf eqtt_to_assert assert_of_eq_int false_wf eqff_to_assert bool_cases_sqequal subtype_base_sq bool_subtype_base assert-bnot neg_assert_of_eq_int itermAdd_wf int_term_value_add_lemma intformeq_wf itermSubtract_wf int_formula_prop_eq_lemma int_term_value_subtract_lemma l_all_wf nat_wf fun_exp_wf or_wf l_disjoint_wf reduce_wf compose_wf cycle_wf set_wf inject_wf not_wf lelt_wf list_subtype_base set_subtype_base int_subtype_base select_member decidable__equal_int le_wf pairwise-implies squash_wf true_wf apply-cycle-member iff_weakening_equal apply-cycle-non-member cycle-closed list_induction null_nil_lemma btrue_wf member-implies-null-eq-bfalse nil_wf btrue_neq_bfalse reduce_cons_lemma cons_member cons_wf and_wf no_repeats_cons reduce_nil_lemma
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity lambdaFormation cut introduction extract_by_obid sqequalHypSubstitution isectElimination thin natural_numberEquality setElimination rename because_Cache hypothesis independent_functionElimination dependent_functionElimination hypothesisEquality independent_isectElimination sqequalRule imageMemberEquality baseClosed imageElimination productElimination dependent_pairFormation lambdaEquality productEquality applyEquality unionElimination int_eqEquality intEquality isect_memberEquality voidElimination voidEquality independent_pairFormation computeAll equalityElimination equalityTransitivity equalitySymmetry promote_hyp instantiate cumulativity addEquality setEquality addLevel functionEquality functionExtensionality isect_memberFormation dependent_set_memberEquality universeEquality inlFormation inrFormation applyLambdaEquality hyp_replacement

Latex:
\mforall{}n:\mBbbN{}.  \mforall{}f:\{f:\mBbbN{}n  {}\mrightarrow{}  \mBbbN{}n|  Inj(\mBbbN{}n;\mBbbN{}n;f)\}  .
\mexists{}cycles:\mBbbN{}n  List  List
(no\_repeats(\mBbbN{}n  List;cycles)
\mwedge{}  (\mforall{}c1\mmember{}cycles.(\mforall{}c2\mmember{}cycles.(c1  =  c2)  \mvee{}  l\_disjoint(\mBbbN{}n;c1;c2)))
\mwedge{}  (\mforall{}c\mmember{}cycles.0  <  ||c||  \mwedge{}  no\_repeats(\mBbbN{}n;c))
\mwedge{}  (f  =  reduce(\mlambda{}c,g.  (cycle(c)  o  g);\mlambda{}x.x;cycles)))

Date html generated: 2017_04_17-AM-08_19_29
Last ObjectModification: 2017_02_27-PM-04_45_06

Theory : list_1

Home Index