Nuprl Lemma : list_ind_reverse_wf_dependent

[A,B:Type].
  ∀nilcase:B. ∀F:B ⟶ (A List) ⟶ A ⟶ B. ∀P:(A List) ⟶ B ⟶ ℙ.
    ((P [] nilcase)
     (∀L:A List. ∀x:A. ∀b:B.  ((b list_ind_reverse(L;nilcase;F) ∈ B)  (P b)  (P (L [x]) (F x))))
     (∀L:A List. (P list_ind_reverse(L;nilcase;F))))


Proof




Definitions occuring in Statement :  list_ind_reverse: list_ind_reverse(L;nilcase;R) append: as bs cons: [a b] nil: [] list: List uall: [x:A]. B[x] prop: all: x:A. B[x] implies:  Q apply: a function: x:A ⟶ B[x] universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] all: x:A. B[x] implies:  Q member: t ∈ T prop: so_lambda: λ2x.t[x] subtype_rel: A ⊆B so_apply: x[s] list_ind_reverse: list_ind_reverse(L;nilcase;R) bool: 𝔹 unit: Unit it: btrue: tt uiff: uiff(P;Q) and: P ∧ Q uimplies: supposing a ifthenelse: if then else fi  bfalse: ff exists: x:A. B[x] or: P ∨ Q sq_type: SQType(T) guard: {T} bnot: ¬bb assert: b false: False nequal: a ≠ b ∈  nat: ge: i ≥  satisfiable_int_formula: satisfiable_int_formula(fmla) not: ¬A top: Top iff: ⇐⇒ Q rev_implies:  Q squash: T int_iseg: {i...j} cand: c∧ B decidable: Dec(P) true: True firstn: firstn(n;as) so_lambda: so_lambda(x,y,z.t[x; y; z]) so_apply: x[s1;s2;s3] append: as bs cons: [a b]
Lemmas referenced :  nat_wf list_wf all_wf equal_wf list_ind_reverse_wf append_wf cons_wf nil_wf eq_int_wf length_wf bool_wf eqtt_to_assert assert_of_eq_int eqff_to_assert bool_cases_sqequal subtype_base_sq bool_subtype_base assert-bnot neg_assert_of_eq_int nat_properties satisfiable-full-omega-tt intformand_wf intformeq_wf itermVar_wf itermConstant_wf intformnot_wf int_formula_prop_and_lemma int_formula_prop_eq_lemma int_term_value_var_lemma int_term_value_constant_lemma int_formula_prop_not_lemma int_formula_prop_wf equal-wf-T-base length_wf_nat intformless_wf int_formula_prop_less_lemma int_subtype_base set_wf less_than_wf primrec-wf2 length_zero iff_weakening_equal firstn_wf subtract_wf le_wf squash_wf true_wf length_firstn_eq decidable__le intformle_wf itermSubtract_wf int_formula_prop_le_lemma int_term_value_subtract_lemma length_firstn last_wf non_null_iff_length subtype_rel_list top_wf decidable__lt list-cases list_ind_nil_lemma length_of_nil_lemma null_nil_lemma product_subtype_list length_of_cons_lemma null_cons_lemma false_wf firstn_last
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation lambdaFormation cut introduction extract_by_obid hypothesis sqequalHypSubstitution isectElimination thin cumulativity hypothesisEquality sqequalRule lambdaEquality because_Cache functionEquality functionExtensionality applyEquality universeEquality natural_numberEquality unionElimination equalityElimination equalityTransitivity equalitySymmetry productElimination independent_isectElimination dependent_pairFormation promote_hyp dependent_functionElimination instantiate independent_functionElimination voidElimination applyLambdaEquality setElimination rename int_eqEquality intEquality isect_memberEquality voidEquality independent_pairFormation computeAll baseClosed baseApply closedConclusion imageElimination dependent_set_memberEquality productEquality imageMemberEquality hypothesis_subsumption hyp_replacement

Latex:
\mforall{}[A,B:Type].
    \mforall{}nilcase:B.  \mforall{}F:B  {}\mrightarrow{}  (A  List)  {}\mrightarrow{}  A  {}\mrightarrow{}  B.  \mforall{}P:(A  List)  {}\mrightarrow{}  B  {}\mrightarrow{}  \mBbbP{}.
        ((P  []  nilcase)
        {}\mRightarrow{}  (\mforall{}L:A  List.  \mforall{}x:A.  \mforall{}b:B.
                    ((b  =  list\_ind\_reverse(L;nilcase;F))  {}\mRightarrow{}  (P  L  b)  {}\mRightarrow{}  (P  (L  @  [x])  (F  b  L  x))))
        {}\mRightarrow{}  (\mforall{}L:A  List.  (P  L  list\_ind\_reverse(L;nilcase;F))))



Date html generated: 2017_04_17-AM-08_44_05
Last ObjectModification: 2017_02_27-PM-05_03_06

Theory : list_1


Home Index