Nuprl Lemma : cycle-decomp

n:ℕ. ∀f:{f:ℕn ⟶ ℕn| Inj(ℕn;ℕn;f)} .
  ∃cycles:ℕList List
   (no_repeats(ℕList;cycles)
   ∧ (∀c1∈cycles.(∀c2∈cycles.(c1 c2 ∈ (ℕList)) ∨ l_disjoint(ℕn;c1;c2)))
   ∧ (∀c∈cycles.0 < ||c|| ∧ no_repeats(ℕn;c))
   ∧ (f reduce(λc,g. (cycle(c) 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: List inject: Inj(A;B;f) compose: 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: t ∈ T
Definitions unfolded in proof :  all: x:A. B[x] uall: [x:A]. B[x] member: t ∈ T nat: implies:  Q uimplies: supposing a sq_stable: SqStable(P) squash: T exists: x:A. B[x] and: P ∧ Q cand: c∧ B so_lambda: λ2x.t[x] prop: int_seg: {i..j-} guard: {T} ge: i ≥  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 then else 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 ∈  so_apply: x[s] iff: ⇐⇒ Q rev_implies:  Q no_repeats: no_repeats(T;l) pairwise: (∀x,y∈L.  P[x; y]) l_disjoint: l_disjoint(T;l1;l2) so_lambda: λ2y.t[x; y] subtype_rel: A ⊆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: 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