Documentation

LeanPool.FormalizationOfBoundedArithmetic.IDelta0

LeanPool.FormalizationOfBoundedArithmetic.IDelta0 #

class IDelta0Model (num : Type u_1) extends IOPENModel num :
Type (max u_1 u_2)

Models of open induction extended with induction for delta-zero formulas.

Instances
    theorem IDelta0Model.pred_exists {M : Type u_1} [idelta0 : IDelta0Model M] {x : M} :
    x 0yx, x = y + 1
    theorem IDelta0Model.ex_of_bdEx {a : Type u_2} [LE a] {t : a} {P : aProp} :
    (∃ xt, P x)∃ (x : a), P x
    theorem IDelta0Model.zero_add {M : Type u_1} [idelta0 : IDelta0Model M] (x : M) :
    0 + x = x
    @[implicit_reducible]
    instance IDelta0Model.instAddZeroClass {M : Type u_1} [idelta0 : IDelta0Model M] :
    Equations
    theorem IDelta0Model.add_diff_exists {M : Type u_1} [idelta0 : IDelta0Model M] (x y : M) :
    ∃ (z : M), x + z = y y + z = x
    theorem IDelta0Model.le_iff_exists_add {M : Type u_1} [idelta0 : IDelta0Model M] (x y : M) :
    x y ∃ (z : M), x + z = y
    theorem IDelta0Model.le_trans {M : Type u_1} [idelta0 : IDelta0Model M] {x y z : M} :
    x yy zx z
    @[implicit_reducible]
    instance IDelta0Model.instPreorder {M : Type u_1} [idelta0 : IDelta0Model M] :
    Equations
    theorem IDelta0Model.le_total {M : Type u_1} [idelta0 : IDelta0Model M] (x y : M) :
    x y y x
    theorem IDelta0Model.add_rotate {M : Type u_1} [idelta0 : IDelta0Model M] {a b c : M} :
    a + b + c = b + c + a
    theorem IDelta0Model.add_le_add_right {M : Type u_1} [idelta0 : IDelta0Model M] {x y z : M} :
    x y x + z y + z
    theorem IDelta0Model.le_cancel_left {M : Type u_1} [idelta0 : IDelta0Model M] {x y z : M} :
    x yz + x z + y
    theorem IDelta0Model.le_mul_right {M : Type u_1} [idelta0 : IDelta0Model M] {x y z : M} :
    x yx * z y * z
    theorem IDelta0Model.le_succ_iff {M : Type u_1} [idelta0 : IDelta0Model M] {x y : M} :
    x y + 1 x y x = y + 1
    @[implicit_reducible]
    instance IDelta0Model.instPartialOrder {M : Type u_1} [idelta0 : IDelta0Model M] :
    Equations
    • One or more equations did not get rendered due to their size.
    @[implicit_reducible]
    noncomputable instance IDelta0Model.instLinearOrder {M : Type u_1} [idelta0 : IDelta0Model M] :
    Equations
    • One or more equations did not get rendered due to their size.
    theorem IDelta0Model.le_of_eq {M : Type u_1} [idelta0 : IDelta0Model M] {x y : M} :
    x = yx y
    theorem IDelta0Model.zero_if_sum_zero {M : Type u_1} [idelta0 : IDelta0Model M] {x y : M} :
    x + y = 0x = 0 y = 0
    theorem IDelta0Model.lt_one_eq_zero {M : Type u_1} [idelta0 : IDelta0Model M] {x : M} :
    x < 1x = 0
    theorem IDelta0Model.lt_iff_succ_le {M : Type u_1} [idelta0 : IDelta0Model M] {x y : M} :
    x < y x + 1 y
    theorem IDelta0Model.mul_eq_zero_iff_left {M : Type u_1} [idelta0 : IDelta0Model M] {x y : M} :
    x 0 → (x * y = 0 y = 0)
    theorem IDelta0Model.mul_cancel_right {M : Type u_1} [idelta0 : IDelta0Model M] (x y z : M) :
    x * z = y * z z 0x = y