Back to NPA

Declaration

group_rel_mul_reassoc

Mathlib.Algebra.Group.Basic

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 (G : Sort u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (group_args : @GroupLawArgs.{u} G one mul inv), forall (a : G), forall (a2 : G), forall (b : G), forall (b2 : G), @Eq.{u} G (mul (mul (mul (inv b) (mul (inv a) a2)) b) (mul (inv b) b2)) (mul (inv (mul a b)) (mul a2 b2))

Proof term

fun G => fun one => fun mul => fun inv => fun group_args => fun a => fun a2 => fun b => fun b2 => @eq_trans.{u} G (mul (mul (mul (inv b) (mul (inv a) a2)) b) (mul (inv b) b2)) (mul (mul (inv b) (mul (inv a) a2)) (mul b (mul (inv b) b2))) (mul (inv (mul a b)) (mul a2 b2)) (@group_mul_assoc.{u} G one mul inv group_args (mul (inv b) (mul (inv a) a2)) b (mul (inv b) b2)) (@eq_trans.{u} G (mul (mul (inv b) (mul (inv a) a2)) (mul b (mul (inv b) b2))) (mul (mul (inv b) (mul (inv a) a2)) (mul (mul b (inv b)) b2)) (mul (inv (mul a b)) (mul a2 b2)) (@eq_congr_arg.{u,u} G G (fun (z : G) => mul (mul (inv b) (mul (inv a) a2)) z) (mul b (mul (inv b) b2)) (mul (mul b (inv b)) b2) (@eq_symm.{u} G (mul (mul b (inv b)) b2) (mul b (mul (inv b) b2)) (@group_mul_assoc.{u} G one mul inv group_args b (inv b) b2))) (@eq_trans.{u} G (mul (mul (inv b) (mul (inv a) a2)) (mul (mul b (inv b)) b2)) (mul (mul (inv b) (mul (inv a) a2)) (mul one b2)) (mul (inv (mul a b)) (mul a2 b2)) (@eq_congr_arg.{u,u} G G (fun (z : G) => mul (mul (inv b) (mul (inv a) a2)) (mul z b2)) (mul b (inv b)) one (@group_mul_inv.{u} G one mul inv group_args b)) (@eq_trans.{u} G (mul (mul (inv b) (mul (inv a) a2)) (mul one b2)) (mul (mul (inv b) (mul (inv a) a2)) b2) (mul (inv (mul a b)) (mul a2 b2)) (@eq_congr_arg.{u,u} G G (fun (z : G) => mul (mul (inv b) (mul (inv a) a2)) z) (mul one b2) b2 (@group_one_mul.{u} G one mul inv group_args b2)) (@eq_trans.{u} G (mul (mul (inv b) (mul (inv a) a2)) b2) (mul (mul (mul (inv b) (inv a)) a2) b2) (mul (inv (mul a b)) (mul a2 b2)) (@eq_congr_arg.{u,u} G G (fun (z : G) => mul z b2) (mul (inv b) (mul (inv a) a2)) (mul (mul (inv b) (inv a)) a2) (@eq_symm.{u} G (mul (mul (inv b) (inv a)) a2) (mul (inv b) (mul (inv a) a2)) (@group_mul_assoc.{u} G one mul inv group_args (inv b) (inv a) a2))) (@eq_trans.{u} G (mul (mul (mul (inv b) (inv a)) a2) b2) (mul (mul (inv b) (inv a)) (mul a2 b2)) (mul (inv (mul a b)) (mul a2 b2)) (@group_mul_assoc.{u} G one mul inv group_args (mul (inv b) (inv a)) a2 b2) (@eq_congr_arg.{u,u} G G (fun (z : G) => mul z (mul a2 b2)) (mul (inv b) (inv a)) (inv (mul a b)) (@group_mul_inv_rev.{u} G one mul inv group_args a b)))))))

Constants