Helper definitions and theorems for converting Nat
expressions into Int
one.
We use them to implement the arithmetic theories in grind
theorem
Int.OfNat.of_le
(ctx : Context)
(lhs rhs : Expr)
:
Expr.denote ctx lhs ≤ Expr.denote ctx rhs → Expr.denoteAsInt ctx lhs ≤ Expr.denoteAsInt ctx rhs
theorem
Int.OfNat.of_not_le
(ctx : Context)
(lhs rhs : Expr)
:
¬Expr.denote ctx lhs ≤ Expr.denote ctx rhs → ¬Expr.denoteAsInt ctx lhs ≤ Expr.denoteAsInt ctx rhs
theorem
Int.OfNat.of_dvd
(ctx : Context)
(d : Nat)
(e : Expr)
:
d ∣ Expr.denote ctx e → ofNat d ∣ Expr.denoteAsInt ctx e
theorem
Int.OfNat.of_eq
(ctx : Context)
(lhs rhs : Expr)
:
Expr.denote ctx lhs = Expr.denote ctx rhs → Expr.denoteAsInt ctx lhs = Expr.denoteAsInt ctx rhs
theorem
Int.OfNat.of_not_eq
(ctx : Context)
(lhs rhs : Expr)
:
¬Expr.denote ctx lhs = Expr.denote ctx rhs → ¬Expr.denoteAsInt ctx lhs = Expr.denoteAsInt ctx rhs