Back to NPA
Declaration
add_middle_to_front_from_ring_args
Mathlib.Algebra.OrderedField.ScalarIdentities
Packages
2
Module
63
Theorems
750
Declarations
1016
Untrusted sidecar
Source text and display overlays are presentation metadata. The signed certificate and checker result are the trusted evidence.
Statement
forall (Scalar : Sort u), forall (zero : Scalar), forall (one : Scalar), forall (add : forall (a : Scalar), forall (b : Scalar), Scalar), forall (neg : forall (a : Scalar), Scalar), forall (sub : forall (a : Scalar), forall (b : Scalar), Scalar), forall (mul : forall (a : Scalar), forall (b : Scalar), Scalar), forall (ring_args : @RingLawArgs.{u} Scalar zero one add neg sub mul), forall (a : Scalar), forall (x : Scalar), forall (b : Scalar), @Eq.{u} Scalar (add (add a x) b) (add x (add a b))
Proof term
fun Scalar => fun zero => fun one => fun add => fun neg => fun sub => fun mul => fun ring_args => fun a => fun x => fun b => ring_args (@Eq.{u} Scalar (add (add a x) b) (add x (add a b))) (fun (sub_eq_add_neg_arg : forall (a : Scalar), forall (b : Scalar), @Eq.{u} Scalar (sub a b) (add a (neg b))) => fun (add_assoc_arg : forall (a : Scalar), forall (b : Scalar), forall (c : Scalar), @Eq.{u} Scalar (add (add a b) c) (add a (add b c))) => fun (add_comm_arg : forall (a : Scalar), forall (b : Scalar), @Eq.{u} Scalar (add a b) (add b a)) => fun (add_zero_arg : forall (a : Scalar), @Eq.{u} Scalar (add a zero) a) => fun (zero_add_arg : forall (a : Scalar), @Eq.{u} Scalar (add zero a) a) => fun (neg_add_cancel_arg : forall (a : Scalar), @Eq.{u} Scalar (add (neg a) a) zero) => fun (add_neg_cancel_arg : forall (a : Scalar), @Eq.{u} Scalar (add a (neg a)) zero) => fun (sub_self_arg : forall (a : Scalar), @Eq.{u} Scalar (sub a a) zero) => fun (mul_assoc_arg : forall (a : Scalar), forall (b : Scalar), forall (c : Scalar), @Eq.{u} Scalar (mul (mul a b) c) (mul a (mul b c))) => fun (mul_comm_arg : forall (a : Scalar), forall (b : Scalar), @Eq.{u} Scalar (mul a b) (mul b a)) => fun (mul_one_arg : forall (a : Scalar), @Eq.{u} Scalar (mul a one) a) => fun (one_mul_arg : forall (a : Scalar), @Eq.{u} Scalar (mul one a) a) => fun (left_distrib_arg : forall (a : Scalar), forall (b : Scalar), forall (c : Scalar), @Eq.{u} Scalar (mul a (add b c)) (add (mul a b) (mul a c))) => fun (right_distrib_arg : forall (a : Scalar), forall (b : Scalar), forall (c : Scalar), @Eq.{u} Scalar (mul (add a b) c) (add (mul a c) (mul b c))) => fun (mul_zero_arg : forall (a : Scalar), @Eq.{u} Scalar (mul a zero) zero) => fun (zero_mul_arg : forall (a : Scalar), @Eq.{u} Scalar (mul zero a) zero) => fun (add_left_cancel_arg : forall (a : Scalar), forall (b : Scalar), forall (c : Scalar), forall (h : @Eq.{u} Scalar (add a b) (add a c)), @Eq.{u} Scalar b c) => fun (ring_normalize_add_mul3_arg : forall (a : Scalar), forall (b : Scalar), forall (c : Scalar), @Eq.{u} Scalar (add (add (mul a b) (mul b c)) (mul a c)) (add (add (mul a b) (mul a c)) (mul b c))) => fun (add_right_cancel_arg : forall (a : Scalar), forall (b : Scalar), forall (c : Scalar), forall (h : @Eq.{u} Scalar (add b a) (add c a)), @Eq.{u} Scalar b c) => fun (neg_neg_arg : forall (a : Scalar), @Eq.{u} Scalar (neg (neg a)) a) => fun (sub_zero_arg : forall (a : Scalar), @Eq.{u} Scalar (sub a zero) a) => fun (zero_sub_arg : forall (a : Scalar), @Eq.{u} Scalar (sub zero a) (neg a)) => fun (sub_add_cancel_arg : forall (a : Scalar), forall (b : Scalar), @Eq.{u} Scalar (add (sub a b) b) a) => fun (add_sub_cancel_arg : forall (a : Scalar), forall (b : Scalar), @Eq.{u} Scalar (sub (add a b) b) a) => fun (sub_add_sub_cancel_arg : forall (a : Scalar), forall (b : Scalar), forall (c : Scalar), @Eq.{u} Scalar (sub (sub a c) (sub b c)) (sub a b)) => @eq_calc3.{u} Scalar (add (add a x) b) (add a (add x b)) (add a (add b x)) (add x (add a b)) (add_assoc_arg a x b) (@eq_congr_arg.{u,u} Scalar Scalar (fun (z : Scalar) => add a z) (add x b) (add b x) (add_comm_arg x b)) (@eq_trans.{u} Scalar (add a (add b x)) (add (add a b) x) (add x (add a b)) (@eq_symm.{u} Scalar (add (add a b) x) (add a (add b x)) (add_assoc_arg a b x)) (add_comm_arg (add a b) x)))