Nuprl Lemma : sqle-list_ind

∀[F:Base]
  ∀[G:Base]
    ∀[H,J:Base].
      ∀as,b1,b2:Base.
        F[rec-case(as) of
          [] => b1
          h::t =>
           r.H[h;t;r]] ≤ G[rec-case(as) of
                           [] => b2
                           h::t =>
                            r.J[h;t;r]] 
        supposing F[b1] ≤ G[b2] 
      supposing ∀x,y,r1,r2:Base.  ((F[r1] ≤ G[r2]) ⇒ (F[H[x;y;r1]] ≤ G[J[x;y;r2]])) 
    supposing strict1(λx.G[x]) 
  supposing strict1(λx.F[x])


Proof




Definitions occuring in Statement :  list_ind: list_ind,  strict1: strict1(F),  uimplies: b supposing a,  uall: ∀[x:A]. B[x],  so_apply: x[s1;s2;s3],  so_apply: x[s],  all: ∀x:A. B[x],  implies: P ⇒ Q,  lambda: λx.A[x],  base: Base,  sqle: s ≤ t
Definitions unfolded in proof :  uall: ∀[x:A]. B[x],  member: t ∈ T,  uimplies: b supposing a,  all: ∀x:A. B[x],  prop: ℙ,  so_lambda: λ2x.t[x],  implies: P ⇒ Q,  so_apply: x[s],  nat: ℕ,  false: False,  ge: i ≥ j ,  guard: {T},  top: Top,  strict1: strict1(F),  and: P ∧ Q,  cand: A c∧ B,  not: ¬A,  squash: ↓T,  or: P ∨ Q,  decidable: Dec(P),  iff: P ⇐⇒ Q,  rev_implies: P ⇐ Q,  uiff: uiff(P;Q),  subtract: n - m,  subtype_rel: A ⊆r B,  le: A ≤ B,  less_than': less_than'(a;b),  true: True,  nat_plus: ℕ+,  has-value: (a)↓,  pi1: fst(t),  pi2: snd(t),  so_lambda: so_lambda(x,y,z,w.t[x; y; z; w]),  so_apply: x[s1;s2;s3;s4],  list_ind: list_ind
Lemmas referenced :  le_wf,  le_weakening2,  fixpoint-upper-bound,  bottom-sqle,  lifting-strict-isaxiom,  lifting-strict-ispair,  lifting-strict-callbyvalue,  fun_exp_unroll_1,  has-value-implies-dec-isaxiom-2,  top_wf,  has-value-implies-dec-ispair-2,  int_subtype_base,  cbv_sqle,  strict1-strict4,  nat_wf,  le-add-cancel,  add-zero,  add_functionality_wrt_le,  add-commutes,  add-swap,  add-associates,  minus-minus,  minus-add,  minus-one-mul-top,  zero-add,  minus-one-mul,  condition-implies-le,  less-iff-le,  not-ge-2,  false_wf,  subtract_wf,  decidable__le,  is-exception_wf,  has-value_wf_base,  exception-not-bottom,  bottom_diverge,  strictness-apply,  fun_exp0_lemma,  less_than_wf,  ge_wf,  less_than_irreflexivity,  less_than_transitivity1,  nat_properties,  strict1_wf,  all_wf,  base_wf,  sqle_wf_base
Rules used in proof :  sqequalSubstitution,  sqequalTransitivity,  computationStep,  sqequalReflexivity,  isect_memberFormation,  introduction,  cut,  lambdaFormation,  axiomSqleEquality,  hypothesis,  lemma_by_obid,  sqequalHypSubstitution,  isectElimination,  thin,  sqequalRule,  baseApply,  closedConclusion,  baseClosed,  hypothesisEquality,  lambdaEquality,  dependent_functionElimination,  isect_memberEquality,  because_Cache,  equalityTransitivity,  equalitySymmetry,  functionEquality,  setElimination,  rename,  intWeakElimination,  natural_numberEquality,  independent_isectElimination,  independent_functionElimination,  voidElimination,  voidEquality,  productElimination,  divergentSqle,  imageElimination,  unionElimination,  independent_pairFormation,  addEquality,  applyEquality,  intEquality,  minusEquality,  comment,  dependent_set_memberEquality,  callbyvalueIspair,  ispairExceptionCases,  exceptionSqequal,  sqleReflexivity,  sqleTransitivity,  fixpointLeast,  sqleRule

Latex:
\mforall{}[F:Base]
    \mforall{}[G:Base]
        \mforall{}[H,J:Base].
            \mforall{}as,b1,b2:Base.
                F[rec-case(as)  of
                    []  =>  b1
                    h::t  =>
                      r.H[h;t;r]]  \mleq{}  G[rec-case(as)  of
                                                      []  =>  b2
                                                      h::t  =>
                                                        r.J[h;t;r]] 
                supposing  F[b1]  \mleq{}  G[b2] 
            supposing  \mforall{}x,y,r1,r2:Base.    ((F[r1]  \mleq{}  G[r2])  {}\mRightarrow{}  (F[H[x;y;r1]]  \mleq{}  G[J[x;y;r2]])) 
        supposing  strict1(\mlambda{}x.G[x]) 
    supposing  strict1(\mlambda{}x.F[x])



Date html generated: 2016_05_14-AM-06_27_22
Last ObjectModification: 2016_01_14-PM-08_27_12

Theory : list_0


Home Index