Nuprl Lemma : adjacent-append

[T:Type]
  ∀x,y:T. ∀L1,L2:T List.
    (adjacent(T;L1 L2;x;y)
    ⇐⇒ adjacent(T;L1;x;y) ∨ (0 < ||L1|| ∧ 0 < ||L2|| ∧ (x last(L1) ∈ T) ∧ (y hd(L2) ∈ T)) ∨ adjacent(T;L2;x;y))


Proof




Definitions occuring in Statement :  adjacent: adjacent(T;L;x;y) last: last(L) length: ||as|| append: as bs hd: hd(l) list: List less_than: a < b uall: [x:A]. B[x] 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 :  adjacent: adjacent(T;L;x;y) uall: [x:A]. B[x] all: x:A. B[x] iff: ⇐⇒ Q and: P ∧ Q implies:  Q exists: x:A. B[x] member: t ∈ T int_seg: {i..j-} uimplies: supposing a top: Top guard: {T} lelt: i ≤ j < k decidable: Dec(P) or: P ∨ Q not: ¬A satisfiable_int_formula: satisfiable_int_formula(fmla) false: False prop: less_than: a < b squash: T uiff: uiff(P;Q) rev_implies:  Q assert: b ifthenelse: if then else fi  btrue: tt less_than': less_than'(a;b) cons: [a b] bfalse: ff ge: i ≥  subtract: m append: as bs so_lambda: so_lambda(x,y,z.t[x; y; z]) so_apply: x[s1;s2;s3] true: True subtype_rel: A ⊆B cand: c∧ B le: A ≤ B last: last(L) select: L[n] nil: [] it: so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] sq_type: SQType(T)
Lemmas referenced :  int_seg_wf subtract_wf length_wf append_wf select_wf length-append istype-void int_seg_properties decidable__le full-omega-unsat intformand_wf intformnot_wf intformle_wf itermConstant_wf itermVar_wf istype-int 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 subtract-is-int-iff add-is-int-iff intformless_wf itermAdd_wf itermSubtract_wf int_formula_prop_less_lemma int_term_value_add_lemma int_term_value_subtract_lemma false_wf istype-less_than last_wf list-cases null_nil_lemma length_of_nil_lemma product_subtype_list null_cons_lemma length_of_cons_lemma hd_wf list_wf istype-universe list_ind_nil_lemma equal_wf squash_wf true_wf select_append_front istype-le subtype_rel_self iff_weakening_equal add-member-int_seg2 select_append_back non_neg_length length_append subtype_rel_list top_wf le_wf less_than_wf decidable__equal_int intformeq_wf int_formula_prop_eq_lemma stuck-spread istype-base subtype_base_sq int_subtype_base reduce_hd_cons_lemma general_arith_equation1 add-associates add-swap add-commutes zero-add select-nthtl length_wf_nat nth_tl_append add-member-int_seg1 minus-one-mul add-mul-special zero-mul add-zero
Rules used in proof :  sqequalSubstitution sqequalRule sqequalReflexivity sqequalTransitivity computationStep isect_memberFormation_alt lambdaFormation_alt independent_pairFormation sqequalHypSubstitution productElimination thin productIsType universeIsType cut introduction extract_by_obid isectElimination natural_numberEquality hypothesisEquality hypothesis equalityIsType1 inhabitedIsType because_Cache setElimination rename independent_isectElimination isect_memberEquality_alt voidElimination addEquality dependent_functionElimination unionElimination approximateComputation independent_functionElimination dependent_pairFormation_alt lambdaEquality_alt int_eqEquality pointwiseFunctionality equalityTransitivity equalitySymmetry promote_hyp imageElimination baseApply closedConclusion baseClosed unionIsType hypothesis_subsumption instantiate universeEquality inlFormation_alt applyEquality dependent_set_memberEquality_alt imageMemberEquality minusEquality inrFormation_alt productEquality hyp_replacement applyLambdaEquality cumulativity intEquality

Latex:
\mforall{}[T:Type]
    \mforall{}x,y:T.  \mforall{}L1,L2:T  List.
        (adjacent(T;L1  @  L2;x;y)
        \mLeftarrow{}{}\mRightarrow{}  adjacent(T;L1;x;y)
                \mvee{}  (0  <  ||L1||  \mwedge{}  0  <  ||L2||  \mwedge{}  (x  =  last(L1))  \mwedge{}  (y  =  hd(L2)))
                \mvee{}  adjacent(T;L2;x;y))



Date html generated: 2019_10_15-AM-11_08_21
Last ObjectModification: 2018_10_18-PM-11_52_15

Theory : general


Home Index