Documentation

Blaster.Optimize.Lemmas.LemmasNat

Lemmas validating the normalization and simplifications rules on Nat #

Lemma to validate the following simplification rules - N1 - (N2 + n) ===> (N1 "-" N2) - n. - (n - N1) - N2 ==> n - (N1 "+" N2).

theorem Blaster.nat_sub_add_eq_sub_sub (x y z : Nat) :
x - (y + z) = x - y - z

Lemma to validate simplification rule (N1 - n) - N2 ==> (N1 "-" N2) - n.

theorem Blaster.nat_sub_assoc (x y z : Nat) :
x - y - z = x - z - y

Lemma to validate simplification rule (N1 + n) - N2 ==> (N1 "-" N2) + n (if N1 ≥ N2).

theorem Blaster.nat_add_sub_assoc (x y z : Nat) :
x ≥ z → x + y - z = x - z + y
theorem Blaster.nat_not_lt_of_lt {a b : Nat} (h : a < b) :
¬b < a
theorem Blaster.nat_not_lt_right_of_eq {a b : Nat} (h : a = b) :
¬b < a
theorem Blaster.nat_not_lt_left_of_eq {a b : Nat} (h : a = b) :
¬a < b
theorem Blaster.nat_not_eq_of_lt_left {a b : Nat} (h : a < b) :
¬a = b
theorem Blaster.nat_not_eq_of_lt_right {a b : Nat} (h : b < a) :
¬a = b
theorem Blaster.nat_not_zero_eq_of_zero_lt {a : Nat} (h : 0 < a) :
¬0 = a
theorem Blaster.nat_zero_lt_of_not_zero_eq {a : Nat} (h : ¬0 = a) :
0 < a
theorem Blaster.sub_min_nat_of_eq (N1 N2 a b : Nat) (h : N1 + a = N2 + b) :
N1 - N1.min N2 + a = N2 - N1.min N2 + b

Return Blaster.nat_not_lt_of_lt const expression and cache result.

Equations
Instances For