Nuprl Lemma : insert-by-no-repeats

[T:Type]. ∀[eq,r:T ⟶ T ⟶ 𝔹].
  (∀[x:T]. ∀[L:T List].
     (no_repeats(T;insert-by(eq;r;x;L))) supposing (no_repeats(T;L) and sorted-by(λx,y. (↑(r y));L))) supposing 
     (Linorder(T;a,b.↑(r b)) and 
     (∀a,b:T.  (↑(eq b) ⇐⇒ b ∈ T)))


Proof




Definitions occuring in Statement :  insert-by: insert-by(eq;r;x;l) sorted-by: sorted-by(R;L) no_repeats: no_repeats(T;l) list: List linorder: Linorder(T;x,y.R[x; y]) assert: b bool: 𝔹 uimplies: supposing a uall: [x:A]. B[x] all: x:A. B[x] iff: ⇐⇒ Q apply: a lambda: λx.A[x] function: x:A ⟶ B[x] universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T uimplies: supposing a so_lambda: λ2x.t[x] all: x:A. B[x] prop: so_apply: x[s] implies:  Q so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] insert-by: insert-by(eq;r;x;l) no_repeats: no_repeats(T;l) sorted-by: sorted-by(R;L) select: L[n] nil: [] it: top: Top so_lambda: so_lambda(x,y,z.t[x; y; z]) so_apply: x[s1;s2;s3] not: ¬A false: False nat: ge: i ≥  iff: ⇐⇒ Q rev_implies:  Q satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] and: P ∧ Q decidable: Dec(P) or: P ∨ Q le: A ≤ B subtype_rel: A ⊆B int_seg: {i..j-} guard: {T} lelt: i ≤ j < k uiff: uiff(P;Q) cand: c∧ B bool: 𝔹 unit: Unit btrue: tt ifthenelse: if then else fi  bfalse: ff linorder: Linorder(T;x,y.R[x; y]) order: Order(T;x,y.R[x; y]) anti_sym: AntiSym(T;x,y.R[x; y])
Lemmas referenced :  list_induction isect_wf sorted-by_wf l_member_wf assert_wf no_repeats_wf insert-by_wf list_wf no_repeats_witness linorder_wf all_wf iff_wf equal_wf bool_wf length_of_nil_lemma stuck-spread base_wf list_ind_nil_lemma length_of_cons_lemma nat_properties satisfiable-full-omega-tt intformand_wf intformnot_wf intformeq_wf itermVar_wf intformless_wf itermConstant_wf intformle_wf int_formula_prop_and_lemma int_formula_prop_not_lemma int_formula_prop_eq_lemma int_term_value_var_lemma int_formula_prop_less_lemma int_term_value_constant_lemma int_formula_prop_le_lemma decidable__equal_int int_formula_prop_wf le_wf equal-wf-base int_subtype_base select_wf cons_wf nil_wf not_wf nat_wf less_than_wf uall_wf int_seg_wf int_seg_properties list_ind_cons_lemma ifthenelse_wf equal-wf-T-base bnot_wf no_repeats_cons eqtt_to_assert uiff_transitivity eqff_to_assert assert_of_bnot sorted-by-cons cons_member l_all_iff member-insert-by
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut thin extract_by_obid sqequalHypSubstitution isectElimination because_Cache sqequalRule lambdaEquality cumulativity hypothesisEquality lambdaFormation hypothesis setElimination rename applyEquality functionExtensionality setEquality dependent_functionElimination independent_functionElimination isect_memberEquality equalityTransitivity equalitySymmetry functionEquality universeEquality baseClosed independent_isectElimination voidElimination voidEquality natural_numberEquality dependent_pairFormation int_eqEquality intEquality independent_pairFormation unionElimination computeAll dependent_set_memberEquality productElimination equalityElimination

Latex:
\mforall{}[T:Type].  \mforall{}[eq,r:T  {}\mrightarrow{}  T  {}\mrightarrow{}  \mBbbB{}].
    (\mforall{}[x:T].  \mforall{}[L:T  List].
          (no\_repeats(T;insert-by(eq;r;x;L)))  supposing 
                (no\_repeats(T;L)  and 
                sorted-by(\mlambda{}x,y.  (\muparrow{}(r  x  y));L)))  supposing 
          (Linorder(T;a,b.\muparrow{}(r  a  b))  and 
          (\mforall{}a,b:T.    (\muparrow{}(eq  a  b)  \mLeftarrow{}{}\mRightarrow{}  a  =  b)))



Date html generated: 2017_04_17-AM-08_32_37
Last ObjectModification: 2017_02_27-PM-04_54_25

Theory : list_1


Home Index