Nuprl Lemma : longest-prefix_property

[T:Type]
  ∀L:T List. ∀P:(T List) ⟶ 𝔹.
    (longest-prefix(P;L) ≤ L
    ∧ longest-prefix(P;L) < supposing 0 < ||L||
    ∧ (((longest-prefix(P;L) [] ∈ (T List)) ∧ (∀L':T List. (L' <  (¬↑(P L')))))
      ∨ ((↑(P longest-prefix(P;L))) ∧ (∀L':T List. (longest-prefix(P;L) < L'  L' <  (¬↑(P L')))))))


Proof




Definitions occuring in Statement :  longest-prefix: longest-prefix(P;L) proper-iseg: L1 < L2 iseg: l1 ≤ l2 length: ||as|| nil: [] list: List assert: b bool: 𝔹 less_than: a < b uimplies: supposing a uall: [x:A]. B[x] all: x:A. B[x] not: ¬A implies:  Q or: P ∨ Q and: P ∧ Q apply: a function: x:A ⟶ B[x] natural_number: $n universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] all: x:A. B[x] member: t ∈ T so_lambda: λ2x.t[x] prop: and: P ∧ Q subtype_rel: A ⊆B so_apply: x[s] uimplies: supposing a listp: List+ istype: istype(T) or: P ∨ Q implies:  Q longest-prefix: longest-prefix(P;L) ifthenelse: if then else fi  btrue: tt cand: c∧ B less_than: a < b squash: T less_than': less_than'(a;b) false: False not: ¬A iff: ⇐⇒ Q proper-iseg: L1 < L2 iseg: l1 ≤ l2 ge: i ≥  rev_implies:  Q le: A ≤ B satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] top: Top bfalse: ff let: let cons: [a b] bool: 𝔹 unit: Unit it: uiff: uiff(P;Q) assert: b true: True sq_type: SQType(T) guard: {T} bnot: ¬bb append: as bs so_lambda: so_lambda3 so_apply: x[s1;s2;s3] lt_int: i <j nil: [] list_ind: list_ind length: ||as|| decidable: Dec(P)
Lemmas referenced :  list_induction list_wf bool_wf iseg_wf longest-prefix_wf subtype_rel_dep_function listp_wf less_than_wf length_wf proper-iseg_wf equal-wf-T-base length_of_nil_lemma not_wf assert_wf null_nil_lemma reduce_tl_nil_lemma iseg_weakening nil_wf member-less_than istype-less_than proper-iseg-length non_neg_length full-omega-unsat intformand_wf intformle_wf itermConstant_wf itermVar_wf intformless_wf istype-int int_formula_prop_and_lemma istype-void int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_var_lemma int_formula_prop_less_lemma int_formula_prop_wf istype-assert null_cons_lemma reduce_hd_cons_lemma reduce_tl_cons_lemma length_of_cons_lemma cons_wf list-cases product_subtype_list istype-universe nil_iseg equal-wf-base-T btrue_neq_bfalse top_wf subtype_rel_list null_wf3 equal_wf and_wf bfalse_wf btrue_wf eqtt_to_assert eqff_to_assert bool_cases_sqequal subtype_base_sq bool_subtype_base assert-bnot int_term_value_add_lemma itermAdd_wf list_ind_cons_lemma list_ind_nil_lemma tl_wf true_wf iff_imp_equal_bool int_subtype_base assert_of_lt_int cons-proper-iseg all_wf equal-wf-base false_wf or_wf cons_iseg int_formula_prop_not_lemma intformnot_wf decidable__lt iseg_nil
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation_alt lambdaFormation_alt cut thin introduction extract_by_obid sqequalHypSubstitution isectElimination hypothesisEquality sqequalRule lambdaEquality_alt functionEquality hypothesis productEquality applyEquality because_Cache inhabitedIsType universeIsType independent_isectElimination setElimination rename isectEquality natural_numberEquality unionEquality baseClosed applyLambdaEquality independent_functionElimination dependent_functionElimination independent_pairFormation imageElimination productElimination voidElimination inlFormation_alt approximateComputation dependent_pairFormation_alt int_eqEquality isect_memberEquality_alt productIsType functionIsType unionElimination promote_hyp hypothesis_subsumption equalityIstype equalityTransitivity equalitySymmetry isectIsType unionIsType instantiate universeEquality sqequalBase addEquality lambdaEquality dependent_set_memberEquality voidEquality isect_memberEquality lambdaFormation equalityElimination inrFormation_alt cumulativity intEquality dependent_pairFormation inrFormation hyp_replacement inlFormation

Latex:
\mforall{}[T:Type]
    \mforall{}L:T  List.  \mforall{}P:(T  List)  {}\mrightarrow{}  \mBbbB{}.
        (longest-prefix(P;L)  \mleq{}  L
        \mwedge{}  longest-prefix(P;L)  <  L  supposing  0  <  ||L||
        \mwedge{}  (((longest-prefix(P;L)  =  [])  \mwedge{}  (\mforall{}L':T  List.  (L'  <  L  {}\mRightarrow{}  (\mneg{}\muparrow{}(P  L')))))
            \mvee{}  ((\muparrow{}(P  longest-prefix(P;L)))
                \mwedge{}  (\mforall{}L':T  List.  (longest-prefix(P;L)  <  L'  {}\mRightarrow{}  L'  <  L  {}\mRightarrow{}  (\mneg{}\muparrow{}(P  L')))))))



Date html generated: 2020_05_20-AM-08_06_31
Last ObjectModification: 2019_11_27-PM-02_18_14

Theory : general


Home Index