Nuprl Lemma : fun-path-append

[T:Type]. ∀[f:T ⟶ T]. ∀[L1,L2:T List]. ∀[x,y,z:T].
  uiff(z=f*(x) via L1 [y L2];{y=f*(x) via [y L2] ∧ z=f*(y) via L1 [y]})


Proof




Definitions occuring in Statement :  fun-path: y=f*(x) via L append: as bs cons: [a b] nil: [] list: List uiff: uiff(P;Q) uall: [x:A]. B[x] guard: {T} and: P ∧ Q function: x:A ⟶ B[x] universe: Type
Definitions unfolded in proof :  subtype_rel: A ⊆B decidable: Dec(P) so_apply: x[s1;s2] so_lambda: λ2y.t[x; y] squash: T less_than: a < b sq_type: SQType(T) so_apply: x[s] so_lambda: λ2x.t[x] it: nil: [] colength: colength(L) less_than': less_than'(a;b) le: A ≤ B cons: [a b] or: P ∨ Q fun-path: y=f*(x) via L guard: {T} uiff: uiff(P;Q) prop: and: P ∧ Q top: Top exists: x:A. B[x] satisfiable_int_formula: satisfiable_int_formula(fmla) not: ¬A uimplies: supposing a ge: i ≥  false: False implies:  Q nat: all: x:A. B[x] member: t ∈ T uall: [x:A]. B[x] so_apply: x[s1;s2;s3] so_lambda: so_lambda3 append: as bs subtract: m last: last(L) select: L[n] cand: c∧ B true: True int_seg: {i..j-} lelt: i ≤ j < k nat_plus: + listp: List+ rev_implies:  Q iff: ⇐⇒ Q
Lemmas referenced :  list_wf nat_wf decidable__le int_term_value_add_lemma int_term_value_subtract_lemma int_formula_prop_not_lemma itermAdd_wf itermSubtract_wf intformnot_wf subtract_wf decidable__equal_int spread_cons_lemma int_subtype_base set_subtype_base subtype_base_sq subtract-1-ge-0 istype-universe fun-path_wf nil_wf append_wf cons_wf length_wf le_wf istype-false colength_wf_list colength-cons-not-zero product_subtype_list list-cases length_of_nil_lemma length-append int_formula_prop_eq_lemma intformeq_wf length_of_cons_lemma member-less_than less_than_wf ge_wf int_formula_prop_wf int_formula_prop_less_lemma int_term_value_var_lemma int_term_value_constant_lemma int_formula_prop_le_lemma istype-void int_formula_prop_and_lemma istype-int intformless_wf itermVar_wf itermConstant_wf intformle_wf intformand_wf full-omega-unsat nat_properties reduce_hd_cons_lemma list_ind_nil_lemma int_seg_properties int_seg_wf list_ind_cons_lemma fun-path-cons false_wf add-is-int-iff decidable__lt nat_plus_properties length_wf_nat add_nat_plus listp_properties hd_wf top_wf subtype_rel_list length_append length_cons non_neg_length length_nil not_wf equal_wf iff_weakening_uiff
Rules used in proof :  universeEquality functionIsType intEquality applyEquality baseClosed closedConclusion baseApply equalityIsType4 imageElimination instantiate productEquality dependent_set_memberEquality_alt because_Cache equalityIsType1 hypothesis_subsumption promote_hyp unionElimination inhabitedIsType functionIsTypeImplies axiomEquality applyLambdaEquality equalitySymmetry equalityTransitivity independent_pairEquality productElimination universeIsType independent_pairFormation sqequalRule voidElimination isect_memberEquality_alt dependent_functionElimination int_eqEquality lambdaEquality_alt dependent_pairFormation_alt independent_functionElimination approximateComputation independent_isectElimination natural_numberEquality intWeakElimination rename setElimination hypothesis hypothesisEquality isectElimination sqequalHypSubstitution extract_by_obid lambdaFormation_alt thin cut introduction isect_memberFormation_alt sqequalReflexivity computationStep sqequalTransitivity sqequalSubstitution productIsType hyp_replacement Error :memTop,  imageMemberEquality pointwiseFunctionality voidEquality isectEquality addEquality

Latex:
\mforall{}[T:Type].  \mforall{}[f:T  {}\mrightarrow{}  T].  \mforall{}[L1,L2:T  List].  \mforall{}[x,y,z:T].
    uiff(z=f*(x)  via  L1  @  [y  /  L2];\{y=f*(x)  via  [y  /  L2]  \mwedge{}  z=f*(y)  via  L1  @  [y]\})



Date html generated: 2020_05_20-AM-08_10_23
Last ObjectModification: 2020_01_17-AM-11_35_29

Theory : general


Home Index