Nuprl Lemma : interleaving_of_cons

[T:Type]
  ∀x:T. ∀L,L1,L2:T List.
    (interleaving(T;L1;L2;[x L])
    ⇐⇒ (0 < ||L1|| c∧ ((L1[0] x ∈ T) ∧ interleaving(T;tl(L1);L2;L)))
        ∨ (0 < ||L2|| c∧ ((L2[0] x ∈ T) ∧ interleaving(T;L1;tl(L2);L))))


Proof




Definitions occuring in Statement :  interleaving: interleaving(T;L1;L2;L) select: L[n] length: ||as|| tl: tl(l) cons: [a b] list: List less_than: a < b uall: [x:A]. B[x] cand: c∧ B all: x:A. B[x] iff: ⇐⇒ Q or: P ∨ Q and: P ∧ Q natural_number: $n universe: Type equal: t ∈ T
Definitions unfolded in proof :  or: P ∨ Q decidable: Dec(P) member: t ∈ T all: x:A. B[x] uall: [x:A]. B[x] uiff: uiff(P;Q) and: P ∧ Q uimplies: supposing a select: L[n] nil: [] it: so_lambda: λ2y.t[x; y] top: Top so_apply: x[s1;s2] prop: cand: c∧ B le: A ≤ B less_than': less_than'(a;b) false: False not: ¬A implies:  Q iff: ⇐⇒ Q rev_implies:  Q exists: x:A. B[x] satisfiable_int_formula: satisfiable_int_formula(fmla) guard: {T} true: True squash: T less_than: a < b nat_plus: + cons: [a b] so_lambda: λ2x.t[x] so_apply: x[s] assert: b ifthenelse: if then else fi  btrue: tt bfalse: ff disjoint_sublists: disjoint_sublists(T;L1;L2;L) interleaving: interleaving(T;L1;L2;L) subtype_rel: A ⊆B lelt: i ≤ j < k int_seg: {i..j-} inject: Inj(A;B;f) unit: Unit bool: 𝔹 sq_type: SQType(T) nat: ge: i ≥  subtract: m increasing: increasing(f;k) rev_uimplies: rev_uimplies(P;Q) colength: colength(L)
Lemmas referenced :  istype-universe list_wf null_wf decidable__assert assert_of_null length_of_nil_lemma stuck-spread base_wf reduce_tl_nil_lemma iff_wf interleaving_wf cons_wf or_wf less_than_wf length_wf equal_wf select_wf false_wf tl_wf nil_wf equal-wf-base-T int_formula_prop_wf int_formula_prop_eq_lemma int_term_value_add_lemma int_term_value_var_lemma int_term_value_constant_lemma int_formula_prop_less_lemma int_formula_prop_not_lemma int_formula_prop_and_lemma intformeq_wf itermAdd_wf itermVar_wf itermConstant_wf intformless_wf intformnot_wf intformand_wf full-omega-unsat add-is-int-iff decidable__lt nat_plus_properties nat_plus_wf length_wf_nat add_nat_plus reduce_tl_cons_lemma length_of_cons_lemma nil_interleaving nat_wf list_induction istype-false istype-int istype-void nil_interleaving2 not_wf assert_wf null_nil_lemma true_wf null_cons_lemma iff_weakening_uiff non_nil_length equal-wf-T-base not_functionality_wrt_uiff int_subtype_base lelt_wf set_subtype_base le_wf decidable__equal_int injection_le int_seg_wf assert_of_le_int bnot_of_lt_int assert_functionality_wrt_uiff eqff_to_assert assert_of_lt_int eqtt_to_assert uiff_transitivity bnot_wf le_int_wf bool_wf lt_int_wf subtype_base_sq int_term_value_subtract_lemma int_formula_prop_le_lemma itermSubtract_wf intformle_wf decidable__le nat_properties int_seg_properties non_neg_length subtract_wf increasing_implies increasing_inj increasing_implies_le istype-less_than istype-le le-add-cancel add-zero add-associates add_functionality_wrt_le add-commutes minus-one-mul-top zero-add minus-one-mul minus-add condition-implies-le not-lt-2 product_subtype_list list-cases select-cons-hd increasing_wf add-member-int_seg2 length_tl subtract_nat_wf iff_weakening_equal subtype_rel_self select_cons_tl squash_wf select_tl length_zero spread_cons_lemma subtract-1-ge-0 colength_wf_list colength-cons-not-zero istype-base ge_wf cons_interleaving cons_interleaving2
Rules used in proof :  universeEquality universeIsType inhabitedIsType unionElimination hypothesis hypothesisEquality isectElimination thin dependent_functionElimination sqequalHypSubstitution extract_by_obid introduction cut lambdaFormation_alt isect_memberFormation_alt sqequalReflexivity computationStep sqequalTransitivity sqequalSubstitution productElimination independent_isectElimination sqequalRule baseClosed lambdaFormation isect_memberEquality voidElimination voidEquality hyp_replacement equalitySymmetry applyLambdaEquality cumulativity because_Cache productEquality natural_numberEquality independent_pairFormation equalityTransitivity imageElimination intEquality int_eqEquality lambdaEquality dependent_pairFormation approximateComputation closedConclusion baseApply promote_hyp pointwiseFunctionality rename setElimination imageMemberEquality dependent_set_memberEquality independent_functionElimination inrFormation functionEquality addEquality productIsType equalityIsType1 lambdaEquality_alt dependent_pairFormation_alt dependent_set_memberEquality_alt isect_memberEquality_alt inlFormation_alt unionIsType equalityIsType3 inrFormation_alt equalityIsType4 applyEquality equalityElimination instantiate functionExtensionality sqequalBase equalityIstype Error :memTop,  functionIsType inlFormation minusEquality hypothesis_subsumption functionIsTypeImplies axiomEquality intWeakElimination

Latex:
\mforall{}[T:Type]
    \mforall{}x:T.  \mforall{}L,L1,L2:T  List.
        (interleaving(T;L1;L2;[x  /  L])
        \mLeftarrow{}{}\mRightarrow{}  (0  <  ||L1||  c\mwedge{}  ((L1[0]  =  x)  \mwedge{}  interleaving(T;tl(L1);L2;L)))
                \mvee{}  (0  <  ||L2||  c\mwedge{}  ((L2[0]  =  x)  \mwedge{}  interleaving(T;L1;tl(L2);L))))



Date html generated: 2020_05_20-AM-07_48_41
Last ObjectModification: 2020_04_06-PM-06_47_41

Theory : list!


Home Index