Nuprl Lemma : cons_sublist_cons

[T:Type]. ∀x1,x2:T. ∀L1,L2:T List.  ([x1 L1] ⊆ [x2 L2] ⇐⇒ ((x1 x2 ∈ T) ∧ L1 ⊆ L2) ∨ [x1 L1] ⊆ L2)


Proof




Definitions occuring in Statement :  sublist: L1 ⊆ L2 cons: [a b] list: List uall: [x:A]. B[x] all: x:A. B[x] iff: ⇐⇒ Q or: P ∨ Q and: P ∧ Q universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] all: x:A. B[x] iff: ⇐⇒ Q and: P ∧ Q implies:  Q sublist: L1 ⊆ L2 member: t ∈ T exists: x:A. B[x] prop: rev_implies:  Q or: P ∨ Q int_seg: {i..j-} lelt: i ≤ j < k le: A ≤ B less_than': less_than'(a;b) false: False not: ¬A nat_plus: + decidable: Dec(P) uimplies: supposing a satisfiable_int_formula: satisfiable_int_formula(fmla) guard: {T} uiff: uiff(P;Q) subtype_rel: A ⊆B cand: c∧ B nat: ge: i ≥  less_than: a < b squash: T sq_type: SQType(T) true: True increasing: increasing(f;k) nequal: a ≠ b ∈  bool: 𝔹 unit: Unit it: btrue: tt ifthenelse: if then else fi  bfalse: ff bnot: ¬bb assert: b subtract: m select: L[n] cons: [a b]
Lemmas referenced :  length_of_cons_lemma sublist_wf cons_wf list_wf istype-universe istype-false add_nat_plus length_wf_nat decidable__lt full-omega-unsat intformnot_wf intformless_wf itermConstant_wf istype-int int_formula_prop_not_lemma int_formula_prop_less_lemma int_term_value_constant_lemma int_formula_prop_wf istype-less_than nat_plus_properties add-is-int-iff intformand_wf itermVar_wf itermAdd_wf intformeq_wf int_formula_prop_and_lemma int_term_value_var_lemma int_term_value_add_lemma int_formula_prop_eq_lemma false_wf istype-le length_wf decidable__assert eq_int_wf assert_of_eq_int neg_assert_of_eq_int int_seg_wf increasing_wf add_nat_wf istype-void nat_properties decidable__le intformle_wf int_formula_prop_le_lemma select_wf int_seg_properties non_neg_length subtype_base_sq int_subtype_base equal_wf squash_wf true_wf select_cons_hd subtype_rel_self iff_weakening_equal increasing_lower_bound subtract_wf itermSubtract_wf int_term_value_subtract_lemma subtract-is-int-iff select_cons_tl le_wf less_than_wf add-subtract-cancel decidable__equal_int subtract_nat_wf eqtt_to_assert eqff_to_assert bool_cases_sqequal bool_wf bool_subtype_base assert-bnot add-member-int_seg2 int_seg_subtype not-le-2 condition-implies-le minus-add minus-one-mul add-swap minus-one-mul-top add-mul-special zero-mul add-zero add-associates minus-minus add-commutes le-add-cancel select-cons-hd select-cons-tl select_cons_tl_sq2 int_seg_subtype_nat subtract-add-cancel zero-add
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation_alt lambdaFormation_alt independent_pairFormation sqequalHypSubstitution sqequalRule cut introduction extract_by_obid dependent_functionElimination thin Error :memTop,  hypothesis productElimination universeIsType isectElimination hypothesisEquality unionIsType productIsType equalityIstype inhabitedIsType instantiate universeEquality dependent_set_memberEquality_alt natural_numberEquality unionElimination independent_isectElimination approximateComputation independent_functionElimination dependent_pairFormation_alt lambdaEquality_alt voidElimination equalityTransitivity equalitySymmetry applyLambdaEquality setElimination rename pointwiseFunctionality promote_hyp baseApply closedConclusion baseClosed int_eqEquality because_Cache addEquality applyEquality inlFormation_alt functionIsType functionExtensionality imageElimination cumulativity intEquality imageMemberEquality productEquality hyp_replacement inrFormation_alt equalityElimination minusEquality multiplyEquality

Latex:
\mforall{}[T:Type]
    \mforall{}x1,x2:T.  \mforall{}L1,L2:T  List.    ([x1  /  L1]  \msubseteq{}  [x2  /  L2]  \mLeftarrow{}{}\mRightarrow{}  ((x1  =  x2)  \mwedge{}  L1  \msubseteq{}  L2)  \mvee{}  [x1  /  L1]  \msubseteq{}  L2)



Date html generated: 2020_05_19-PM-09_42_01
Last ObjectModification: 2019_12_31-PM-00_15_48

Theory : list_1


Home Index