Nuprl Lemma : Wmul-add-properties
∀[A:Type]. ∀[B:A ⟶ Type].
  ∀zero,succ:A ⟶ 𝔹.
    ((∀a:A. ((↑(succ a)) ⇒ B[a] ≡ Unit))
    ⇒ (∀a:A. (¬↑(zero a) ⇐⇒ B[a]))
    ⇒ (∀a1,a2:A.  ((↑(zero a1)) ⇒ (↑(zero a2)) ⇒ (a1 = a2 ∈ A)))
    ⇒ (∀x,y,z:W(A;a.B[a]).
          (((x + (y + z)) = ((x + y) + z) ∈ W(A;a.B[a]))
          ∧ ((x * (y + z)) = ((x * y) + (x * z)) ∈ W(A;a.B[a]))
          ∧ ((x * (y * z)) = ((x * y) * z) ∈ W(A;a.B[a]))
          ∧ (isZero(z) ⇒ isZero(y) ⇒ (z = y ∈ W(A;a.B[a])))
          ∧ (isZero(z)
            ⇒ ((((x + z) = x ∈ W(A;a.B[a])) ∧ ((z + x) = x ∈ W(A;a.B[a]))) ∧ ((x * z) = z ∈ W(A;a.B[a])) ∧ (z ≤  x)))
          ∧ ((x ≤  y) ⇒ (((x + z) ≤  (y + z)) ∧ ((z + x) ≤  (z + y))))
          ∧ ((x <  y) ⇒ ((z + x) <  (z + y)))
          ∧ ((x ≤  y) ⇒ ((x * z) ≤  (y * z))))))
Proof
Definitions occuring in Statement : 
Wmul: (w1 * w2), 
Wadd: (w1 + w2), 
Wzero: isZero(w), 
Wcmp: Wcmp(A;a.B[a];leq), 
W: W(A;a.B[a]), 
assert: ↑b, 
bfalse: ff, 
btrue: tt, 
bool: 𝔹, 
ext-eq: A ≡ B, 
uall: ∀[x:A]. B[x], 
infix_ap: x f y, 
so_apply: x[s], 
all: ∀x:A. B[x], 
iff: P ⇐⇒ Q, 
not: ¬A, 
implies: P ⇒ Q, 
and: P ∧ Q, 
unit: Unit, 
apply: f a, 
function: x:A ⟶ B[x], 
universe: Type, 
equal: s = t ∈ T
Definitions unfolded in proof : 
uall: ∀[x:A]. B[x], 
all: ∀x:A. B[x], 
implies: P ⇒ Q, 
member: t ∈ T, 
iff: P ⇐⇒ Q, 
and: P ∧ Q, 
not: ¬A, 
false: False, 
so_apply: x[s], 
prop: ℙ, 
rev_implies: P ⇐ Q, 
decidable: Dec(P), 
or: P ∨ Q, 
subtype_rel: A ⊆r B, 
cand: A c∧ B, 
squash: ↓T, 
so_lambda: λ2x.t[x], 
true: True, 
uimplies: b supposing a, 
guard: {T}, 
ext-eq: A ≡ B, 
infix_ap: x f y
Lemmas referenced : 
assert_wf, 
decidable__assert, 
not_wf, 
assert_witness, 
equal_wf, 
squash_wf, 
true_wf, 
W_wf, 
Wadd-assoc, 
Wadd_wf, 
iff_weakening_equal, 
Wmul-Wadd, 
Wmul_wf, 
Wmul-assoc, 
Wzero-unique, 
Wzero_wf, 
Wadd-Wzero, 
Wmul-Wzero, 
Wzero-leq, 
Wleq-Wadd, 
Wleq-Wadd2, 
Wcmp_wf, 
btrue_wf, 
Wless-Wadd, 
bfalse_wf, 
Wleq-Wmul, 
all_wf, 
iff_wf, 
ext-eq_wf, 
unit_wf2, 
bool_wf
Rules used in proof : 
sqequalSubstitution, 
sqequalTransitivity, 
computationStep, 
sqequalReflexivity, 
isect_memberFormation, 
lambdaFormation, 
cut, 
introduction, 
independent_pairFormation, 
thin, 
applyEquality, 
functionExtensionality, 
hypothesisEquality, 
cumulativity, 
hypothesis, 
sqequalHypSubstitution, 
independent_functionElimination, 
voidElimination, 
extract_by_obid, 
isectElimination, 
dependent_functionElimination, 
unionElimination, 
productElimination, 
because_Cache, 
sqequalRule, 
independent_pairEquality, 
lambdaEquality, 
imageElimination, 
equalityTransitivity, 
equalitySymmetry, 
natural_numberEquality, 
imageMemberEquality, 
baseClosed, 
universeEquality, 
independent_isectElimination, 
axiomEquality, 
functionEquality
Latex:
\mforall{}[A:Type].  \mforall{}[B:A  {}\mrightarrow{}  Type].
    \mforall{}zero,succ:A  {}\mrightarrow{}  \mBbbB{}.
        ((\mforall{}a:A.  ((\muparrow{}(succ  a))  {}\mRightarrow{}  B[a]  \mequiv{}  Unit))
        {}\mRightarrow{}  (\mforall{}a:A.  (\mneg{}\muparrow{}(zero  a)  \mLeftarrow{}{}\mRightarrow{}  B[a]))
        {}\mRightarrow{}  (\mforall{}a1,a2:A.    ((\muparrow{}(zero  a1))  {}\mRightarrow{}  (\muparrow{}(zero  a2))  {}\mRightarrow{}  (a1  =  a2)))
        {}\mRightarrow{}  (\mforall{}x,y,z:W(A;a.B[a]).
                    (((x  +  (y  +  z))  =  ((x  +  y)  +  z))
                    \mwedge{}  ((x  *  (y  +  z))  =  ((x  *  y)  +  (x  *  z)))
                    \mwedge{}  ((x  *  (y  *  z))  =  ((x  *  y)  *  z))
                    \mwedge{}  (isZero(z)  {}\mRightarrow{}  isZero(y)  {}\mRightarrow{}  (z  =  y))
                    \mwedge{}  (isZero(z)  {}\mRightarrow{}  ((((x  +  z)  =  x)  \mwedge{}  ((z  +  x)  =  x))  \mwedge{}  ((x  *  z)  =  z)  \mwedge{}  (z  \mleq{}    x)))
                    \mwedge{}  ((x  \mleq{}    y)  {}\mRightarrow{}  (((x  +  z)  \mleq{}    (y  +  z))  \mwedge{}  ((z  +  x)  \mleq{}    (z  +  y))))
                    \mwedge{}  ((x  <    y)  {}\mRightarrow{}  ((z  +  x)  <    (z  +  y)))
                    \mwedge{}  ((x  \mleq{}    y)  {}\mRightarrow{}  ((x  *  z)  \mleq{}    (y  *  z))))))
 Date html generated: 
2017_04_14-AM-07_45_09
 Last ObjectModification: 
2017_02_27-PM-03_16_18
Theory : co-recursion
Home
Index