File: .lake/packages/lean4/src/lean/Init/Data/Nat/Simproc.lean

full_name: Nat.Simproc.sub_add_eq_comm
code: theorem sub_add_eq_comm (a b c : Nat) : a - (b + c) = a - c - b 
goal: a - (b + c) = a - c - b

full_name: Nat.Simproc.add_sub_add_le
code: theorem add_sub_add_le (a c : Nat) {b d : Nat} (h : b ≤ d) : a + b - (c + d) = a - (c + (d-b)) 
goal: a + b - (c + d) = a - (c + (d - b))

full_name: Nat.Simproc.add_sub_add_ge
code: theorem add_sub_add_ge (a c : Nat) {b d : Nat} (h : b ≥ d) : a + b - (c + d) = a + (b - d) - c 
goal: a + b - (c + d) = a + (b - d) - c

full_name: Nat.Simproc.add_sub_le
code: theorem add_sub_le (a : Nat) {b c : Nat} (h : b ≤ c) : a + b - c = a - (c - b) 
goal: a + b - c = a - (c - b)

full_name: Nat.Simproc.add_eq_gt
code: theorem add_eq_gt (a : Nat) {b c : Nat} (h : b > c) : (a + b = c) = False 
goal: (a + b = c) = False

full_name: Nat.Simproc.eq_add_gt
code: theorem eq_add_gt (a : Nat) {b c : Nat} (h : c > a) : (a = b + c) = False 
goal: (a = b + c) = False

full_name: Nat.Simproc.add_eq_add_le
code: theorem add_eq_add_le (a c : Nat) {b d : Nat} (h : b ≤ d) : (a + b = c + d) = (a = c + (d - b)) 
goal: (a + b = c + d) = (a = c + (d - b))

full_name: Nat.Simproc.add_eq_add_ge
code: theorem add_eq_add_ge (a c : Nat) {b d : Nat} (h : b ≥ d) : (a + b = c + d) = (a + (b - d) = c) 
goal: (a + b = c + d) = (a + (b - d) = c)

full_name: Nat.Simproc.add_eq_le
code: theorem add_eq_le (a : Nat) {b c : Nat} (h : b ≤ c) : (a + b = c) = (a = c - b) 
goal: (a + b = c) = (a = c - b)

full_name: Nat.Simproc.eq_add_le
code: theorem eq_add_le {a : Nat} (b : Nat) {c : Nat} (h : c ≤ a) : (a = b + c) = (b = a - c) 
goal: (a = b + c) = (b = a - c)

full_name: Nat.Simproc.beqEqOfEqEq
code: theorem beqEqOfEqEq {a b c d : Nat} (p : (a = b) = (c = d)) : (a == b) = (c == d) 
goal: (a == b) = (c == d)

full_name: Nat.Simproc.beqFalseOfEqFalse
code: theorem beqFalseOfEqFalse {a b : Nat} (p : (a = b) = False) : (a == b) = false 
goal: (a == b) = false

full_name: Nat.Simproc.bneEqOfEqEq
code: theorem bneEqOfEqEq {a b c d : Nat} (p : (a = b) = (c = d)) : (a != b) = (c != d) 
goal: (a != b) = (c != d)

full_name: Nat.Simproc.bneTrueOfEqFalse
code: theorem bneTrueOfEqFalse {a b : Nat} (p : (a = b) = False) : (a != b) = true 
goal: (a != b) = true

full_name: Nat.Simproc.add_le_add_le
code: theorem add_le_add_le (a c : Nat) {b d : Nat} (h : b ≤ d) : (a + b ≤ c + d) = (a ≤ c + (d - b)) 
goal: (a + b ≤ c + d) = (a ≤ c + (d - b))

full_name: Nat.Simproc.add_le_add_ge
code: theorem add_le_add_ge (a c : Nat) {b d : Nat} (h : b ≥ d) : (a + b ≤ c + d) = (a + (b - d) ≤ c) 
goal: (a + b ≤ c + d) = (a + (b - d) ≤ c)

full_name: Nat.Simproc.add_le_le
code: theorem add_le_le (a : Nat) {b c : Nat} (h : b ≤ c) : (a + b ≤ c) = (a ≤ c - b) 
goal: (a + b ≤ c) = (a ≤ c - b)

full_name: Nat.Simproc.add_le_gt
code: theorem add_le_gt (a : Nat) {b c : Nat} (h : b > c) : (a + b ≤ c) = False 
goal: (a + b ≤ c) = False

full_name: Nat.Simproc.le_add_le
code: theorem le_add_le (a : Nat) {b c : Nat} (h : a ≤ c) : (a ≤ b + c) = True 
goal: (a ≤ b + c) = True

full_name: Nat.Simproc.le_add_ge
code: theorem le_add_ge (a : Nat) {b c : Nat} (h : a ≥ c) : (a ≤ b + c) = (a - c ≤ b) 
goal: (a ≤ b + c) = (a - c ≤ b)