[{"kind":"definition","module":"Mathlib.Algebra.Group.Basic","object_id":"object-737d64f3a1786f39734bd1206ebcc579e8a962e12546d91f40077346a5b2f94d","qualified_name":"AddCommGroup.toGrindIntModule","statement":"(α : Type u_5) → [s : AddCommGroup.{u_5} α] → Lean.Grind.IntModule.{u_5} α"},{"kind":"definition","module":"Mathlib.Algebra.Group.Basic","object_id":"object-cf04ce6895b715160bee6d5c1d5672290fe11d3017287d5c144c13cff146aa77","qualified_name":"AddCommMonoid.toGrindNatModule","statement":"(α : Type u_5) → [s : AddCommMonoid.{u_5} α] → Lean.Grind.NatModule.{u_5} α"},{"kind":"definition","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-d237fb03200c19369cd38170eb107eb55b612dca66c54e0dc48ce2573f90b046","qualified_name":"AddHom.mulLeft","statement":"{R : Type u_1} →\n  [inst : Distrib.{u_1} R] → R → @AddHom.{u_1, u_1} R R (@Distrib.toAdd.{u_1} R inst) (@Distrib.toAdd.{u_1} R inst)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-dfa2660ae45ed4eef156657dab99aeade6e428cbee6c24da9b5ffc32625e34a2","qualified_name":"AddHom.mulLeft_apply","statement":"∀ {R : Type u_1} [inst : Distrib.{u_1} R] (r : R),\n  @Eq.{u_1 + 1} (R → R)\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (@AddHom.{u_1, u_1} R R (@Distrib.toAdd.{u_1} R inst) (@Distrib.toAdd.{u_1} R inst)) R (fun x => R)\n      (@AddHom.funLike.{u_1, u_1} R R (@Distrib.toAdd.{u_1} R inst) (@Distrib.toAdd.{u_1} R inst))\n      (@AddHom.mulLeft.{u_1} R inst r))\n    fun x => @HMul.hMul.{u_1, u_1, u_1} R R R (@instHMul.{u_1} R (@Distrib.toMul.{u_1} R inst)) r x"},{"kind":"definition","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-b59fdf341dc65ed8b389b499a90e50eb0eb04391aed414e124fbf5647dcf79ef","qualified_name":"AddHom.mulRight","statement":"{R : Type u_1} →\n  [inst : Distrib.{u_1} R] → R → @AddHom.{u_1, u_1} R R (@Distrib.toAdd.{u_1} R inst) (@Distrib.toAdd.{u_1} R inst)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-c0b54831cdaa60d4b9535ec74b9042552829f8fc52d31869055625ec98c4a5e5","qualified_name":"AddHom.mulRight_apply","statement":"∀ {R : Type u_1} [inst : Distrib.{u_1} R] (r : R),\n  @Eq.{u_1 + 1} (R → R)\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (@AddHom.{u_1, u_1} R R (@Distrib.toAdd.{u_1} R inst) (@Distrib.toAdd.{u_1} R inst)) R (fun x => R)\n      (@AddHom.funLike.{u_1, u_1} R R (@Distrib.toAdd.{u_1} R inst) (@Distrib.toAdd.{u_1} R inst))\n      (@AddHom.mulRight.{u_1} R inst r))\n    fun a => @HMul.hMul.{u_1, u_1, u_1} R R R (@instHMul.{u_1} R (@Distrib.toMul.{u_1} R inst)) a r"},{"kind":"definition","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-a39de07a710a397340f6533f2fa11cb83659b66a7a87613fa8cd96e44bcab000","qualified_name":"AddMonoid.End.mulLeft","statement":"{R : Type u_1} →\n  [inst : NonUnitalNonAssocSemiring.{u_1} R] →\n    @AddMonoidHom.{u_1, u_1} R\n      (@AddMonoid.End.{u_1} R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      (@AddZeroClass.toAddZero.{u_1} R\n        (@AddMonoid.toAddZeroClass.{u_1} R\n          (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n      (@AddZeroClass.toAddZero.{u_1}\n        (@AddMonoid.End.{u_1} R\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n        (@AddMonoid.toAddZeroClass.{u_1}\n          (@AddMonoid.End.{u_1} R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n          (@AddCommMonoid.toAddMonoid.{u_1}\n            (@AddMonoid.End.{u_1} R\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n            (@AddMonoid.End.instAddCommMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-3fb210be08ad87791e0109cb199b87326d22f686bcce664f7250415b7573e9c1","qualified_name":"AddMonoid.End.mulLeft_apply_apply","statement":"∀ {R : Type u_1} [inst : NonUnitalNonAssocSemiring.{u_1} R] (r x : R),\n  @Eq.{u_1 + 1} R\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (@AddMonoidHom.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      R (fun x => R)\n      (@AddMonoidHom.instFunLike.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n        (@AddMonoidHom.{u_1, u_1} R\n          (@AddMonoid.End.{u_1} R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n          (@AddZeroClass.toAddZero.{u_1}\n            (@AddMonoid.End.{u_1} R\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n            (@AddMonoid.toAddZeroClass.{u_1}\n              (@AddMonoid.End.{u_1} R\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n              (@AddCommMonoid.toAddMonoid.{u_1}\n                (@AddMonoid.End.{u_1} R\n                  (@AddZeroClass.toAddZero.{u_1} R\n                    (@AddMonoid.toAddZeroClass.{u_1} R\n                      (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n                (@AddMonoid.End.instAddCommMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))))\n        R\n        (fun x =>\n          @AddMonoid.End.{u_1} R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n        (@AddMonoidHom.instFunLike.{u_1, u_1} R\n          (@AddMonoid.End.{u_1} R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n          (@AddZeroClass.toAddZero.{u_1}\n            (@AddMonoid.End.{u_1} R\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n            (@AddMonoid.toAddZeroClass.{u_1}\n              (@AddMonoid.End.{u_1} R\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n              (@AddCommMonoid.toAddMonoid.{u_1}\n                (@AddMonoid.End.{u_1} R\n                  (@AddZeroClass.toAddZero.{u_1} R\n                    (@AddMonoid.toAddZeroClass.{u_1} R\n                      (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n                (@AddMonoid.End.instAddCommMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))))\n        (@AddMonoid.End.mulLeft.{u_1} R inst) r)\n      x)\n    (@HMul.hMul.{u_1, u_1, u_1} R R R\n      (@instHMul.{u_1} R (@Distrib.toMul.{u_1} R (@NonUnitalNonAssocSemiring.toDistrib.{u_1} R inst))) r x)"},{"kind":"definition","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-be4728516571631ee0d9c7866bb4fea6cca07147dece13a27e03f642f56c5e5e","qualified_name":"AddMonoid.End.mulRight","statement":"{R : Type u_1} →\n  [inst : NonUnitalNonAssocSemiring.{u_1} R] →\n    @AddMonoidHom.{u_1, u_1} R\n      (@AddMonoid.End.{u_1} R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      (@AddZeroClass.toAddZero.{u_1} R\n        (@AddMonoid.toAddZeroClass.{u_1} R\n          (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n      (@AddZeroClass.toAddZero.{u_1}\n        (@AddMonoid.End.{u_1} R\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n        (@AddMonoid.toAddZeroClass.{u_1}\n          (@AddMonoid.End.{u_1} R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n          (@AddCommMonoid.toAddMonoid.{u_1}\n            (@AddMonoid.End.{u_1} R\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n            (@AddMonoid.End.instAddCommMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-bfe9cfbbad2766e83d8c8c590469e616e94ae486971fa0124cecc9b3da7acf62","qualified_name":"AddMonoid.End.mulRight_apply_apply","statement":"∀ {R : Type u_1} [inst : NonUnitalNonAssocSemiring.{u_1} R] (y x : R),\n  @Eq.{u_1 + 1} R\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (@AddMonoidHom.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      R (fun x => R)\n      (@AddMonoidHom.instFunLike.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n        (@AddMonoidHom.{u_1, u_1} R\n          (@AddMonoid.End.{u_1} R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n          (@AddZeroClass.toAddZero.{u_1}\n            (@AddMonoid.End.{u_1} R\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n            (@AddMonoid.toAddZeroClass.{u_1}\n              (@AddMonoid.End.{u_1} R\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n              (@AddCommMonoid.toAddMonoid.{u_1}\n                (@AddMonoid.End.{u_1} R\n                  (@AddZeroClass.toAddZero.{u_1} R\n                    (@AddMonoid.toAddZeroClass.{u_1} R\n                      (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n                (@AddMonoid.End.instAddCommMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))))\n        R\n        (fun x =>\n          @AddMonoid.End.{u_1} R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n        (@AddMonoidHom.instFunLike.{u_1, u_1} R\n          (@AddMonoid.End.{u_1} R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n          (@AddZeroClass.toAddZero.{u_1}\n            (@AddMonoid.End.{u_1} R\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n            (@AddMonoid.toAddZeroClass.{u_1}\n              (@AddMonoid.End.{u_1} R\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n              (@AddCommMonoid.toAddMonoid.{u_1}\n                (@AddMonoid.End.{u_1} R\n                  (@AddZeroClass.toAddZero.{u_1} R\n                    (@AddMonoid.toAddZeroClass.{u_1} R\n                      (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n                (@AddMonoid.End.instAddCommMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))))\n        (@AddMonoid.End.mulRight.{u_1} R inst) y)\n      x)\n    (@HMul.hMul.{u_1, u_1, u_1} R R R\n      (@instHMul.{u_1} R (@Distrib.toMul.{u_1} R (@NonUnitalNonAssocSemiring.toDistrib.{u_1} R inst))) x y)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-755a1775a1a5ee54c6d6a575f7d4fd7687ce10a88ac25f3178cc1eb86c540bbe","qualified_name":"AddMonoid.End.mulRight_eq_mulLeft","statement":"∀ {R : Type u_1} [inst : NonUnitalNonAssocCommSemiring.{u_1} R],\n  @Eq.{u_1 + 1}\n    (@AddMonoidHom.{u_1, u_1} R\n      (@AddMonoid.End.{u_1} R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R\n              (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R\n                (@NonUnitalNonAssocCommSemiring.toNonUnitalNonAssocSemiring.{u_1} R inst))))))\n      (@AddZeroClass.toAddZero.{u_1} R\n        (@AddMonoid.toAddZeroClass.{u_1} R\n          (@AddCommMonoid.toAddMonoid.{u_1} R\n            (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R\n              (@NonUnitalNonAssocCommSemiring.toNonUnitalNonAssocSemiring.{u_1} R inst)))))\n      (@AddZeroClass.toAddZero.{u_1}\n        (@AddMonoid.End.{u_1} R\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R\n                (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R\n                  (@NonUnitalNonAssocCommSemiring.toNonUnitalNonAssocSemiring.{u_1} R inst))))))\n        (@AddMonoid.toAddZeroClass.{u_1}\n          (@AddMonoid.End.{u_1} R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R\n                  (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R\n                    (@NonUnitalNonAssocCommSemiring.toNonUnitalNonAssocSemiring.{u_1} R inst))))))\n          (@AddCommMonoid.toAddMonoid.{u_1}\n            (@AddMonoid.End.{u_1} R\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R\n                    (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R\n                      (@NonUnitalNonAssocCommSemiring.toNonUnitalNonAssocSemiring.{u_1} R inst))))))\n            (@AddMonoid.End.instAddCommMonoid.{u_1} R\n              (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R\n                (@NonUnitalNonAssocCommSemiring.toNonUnitalNonAssocSemiring.{u_1} R inst)))))))\n    (@AddMonoid.End.mulRight.{u_1} R (@NonUnitalNonAssocCommSemiring.toNonUnitalNonAssocSemiring.{u_1} R inst))\n    (@AddMonoid.End.mulLeft.{u_1} R (@NonUnitalNonAssocCommSemiring.toNonUnitalNonAssocSemiring.{u_1} R inst))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-72cd3f182c262b0c6c9cb7da05e12baa35f9015ae5dbf9e50cc4d4fb5ec3238b","qualified_name":"AddMonoidHom.coe_flip_mul","statement":"∀ {R : Type u_1} [inst : NonUnitalNonAssocSemiring.{u_1} R],\n  @Eq.{u_1 + 1}\n    (R →\n      @AddMonoidHom.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (@AddMonoidHom.{u_1, u_1} R\n        (@AddMonoidHom.{u_1, u_1} R R\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1}\n          (@AddMonoidHom.{u_1, u_1} R R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n          (@AddMonoid.toAddZeroClass.{u_1}\n            (@AddMonoidHom.{u_1, u_1} R R\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n            (@AddCommMonoid.toAddMonoid.{u_1}\n              (@AddMonoidHom.{u_1, u_1} R R\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n              (@AddMonoidHom.instAddCommMonoid.{u_1, u_1} R R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))\n                (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))))\n      R\n      (fun x =>\n        @AddMonoidHom.{u_1, u_1} R R\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      (@AddMonoidHom.instFunLike.{u_1, u_1} R\n        (@AddMonoidHom.{u_1, u_1} R R\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1}\n          (@AddMonoidHom.{u_1, u_1} R R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n          (@AddMonoid.toAddZeroClass.{u_1}\n            (@AddMonoidHom.{u_1, u_1} R R\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n            (@AddCommMonoid.toAddMonoid.{u_1}\n              (@AddMonoidHom.{u_1, u_1} R R\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n              (@AddMonoidHom.instAddCommMonoid.{u_1, u_1} R R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))\n                (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))))\n      (@AddMonoidHom.flip.{u_1, u_1, u_1} R R R\n        (@AddMonoid.toAddZeroClass.{u_1} R\n          (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))\n        (@AddMonoid.toAddZeroClass.{u_1} R\n          (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))\n        (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst) (@AddMonoidHom.mul.{u_1} R inst)))\n    (@AddMonoidHom.mulRight.{u_1} R inst)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-7cfcb8c9de78177dd109ddffa4b376c051b13c2ef48abb32efa06bb44142fb49","qualified_name":"AddMonoidHom.coe_mul","statement":"∀ {R : Type u_1} [inst : NonUnitalNonAssocSemiring.{u_1} R],\n  @Eq.{u_1 + 1}\n    (R →\n      @AddMonoidHom.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (@AddMonoidHom.{u_1, u_1} R\n        (@AddMonoidHom.{u_1, u_1} R R\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1}\n          (@AddMonoidHom.{u_1, u_1} R R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n          (@AddMonoid.toAddZeroClass.{u_1}\n            (@AddMonoidHom.{u_1, u_1} R R\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n            (@AddCommMonoid.toAddMonoid.{u_1}\n              (@AddMonoidHom.{u_1, u_1} R R\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n              (@AddMonoidHom.instAddCommMonoid.{u_1, u_1} R R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))\n                (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))))\n      R\n      (fun x =>\n        @AddMonoidHom.{u_1, u_1} R R\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      (@AddMonoidHom.instFunLike.{u_1, u_1} R\n        (@AddMonoidHom.{u_1, u_1} R R\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1}\n          (@AddMonoidHom.{u_1, u_1} R R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n          (@AddMonoid.toAddZeroClass.{u_1}\n            (@AddMonoidHom.{u_1, u_1} R R\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n            (@AddCommMonoid.toAddMonoid.{u_1}\n              (@AddMonoidHom.{u_1, u_1} R R\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n              (@AddMonoidHom.instAddCommMonoid.{u_1, u_1} R R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))\n                (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))))\n      (@AddMonoidHom.mul.{u_1} R inst))\n    (@AddMonoidHom.mulLeft.{u_1} R inst)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-5f262c09ce12d76ada996c9018c62b1943f271afe45e6aaede0d2b2ae9d95b9d","qualified_name":"AddMonoidHom.coe_mulLeft","statement":"∀ {R : Type u_1} [inst : NonUnitalNonAssocSemiring.{u_1} R] (r : R),\n  @Eq.{u_1 + 1} (R → R)\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (@AddMonoidHom.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      R (fun x => R)\n      (@AddMonoidHom.instFunLike.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      (@AddMonoidHom.mulLeft.{u_1} R inst r))\n    (@HMul.hMul.{u_1, u_1, u_1} R R R\n      (@instHMul.{u_1} R (@Distrib.toMul.{u_1} R (@NonUnitalNonAssocSemiring.toDistrib.{u_1} R inst))) r)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-de70e30d8ca2f42509ec0d9eb6464224a1822979e523c4e486acefd2bd79d181","qualified_name":"AddMonoidHom.coe_mulRight","statement":"∀ {R : Type u_1} [inst : NonUnitalNonAssocSemiring.{u_1} R] (r : R),\n  @Eq.{u_1 + 1} (R → R)\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (@AddMonoidHom.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      R (fun x => R)\n      (@AddMonoidHom.instFunLike.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      (@AddMonoidHom.mulRight.{u_1} R inst r))\n    fun x =>\n    @HMul.hMul.{u_1, u_1, u_1} R R R\n      (@instHMul.{u_1} R (@Distrib.toMul.{u_1} R (@NonUnitalNonAssocSemiring.toDistrib.{u_1} R inst))) x r"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-b2a1d1ce0faa10c50120ccd9119ea037e5cccff632a3964198888360854da346","qualified_name":"AddMonoidHom.map_mul_iff","statement":"∀ {R : Type u_1} {S : Type u_2} [inst : NonUnitalNonAssocSemiring.{u_1} R] [inst_1 : NonUnitalNonAssocSemiring.{u_2} S]\n  (f :\n    @AddMonoidHom.{u_1, u_2} R S\n      (@AddZeroClass.toAddZero.{u_1} R\n        (@AddMonoid.toAddZeroClass.{u_1} R\n          (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n      (@AddZeroClass.toAddZero.{u_2} S\n        (@AddMonoid.toAddZeroClass.{u_2} S\n          (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1))))),\n  Iff\n    (∀ (x y : R),\n      @Eq.{u_2 + 1} S\n        (@DFunLike.coe.{max (u_1 + 1) (u_2 + 1), u_1 + 1, u_2 + 1}\n          (@AddMonoidHom.{u_1, u_2} R S\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n            (@AddZeroClass.toAddZero.{u_2} S\n              (@AddMonoid.toAddZeroClass.{u_2} S\n                (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))))\n          R (fun x => S)\n          (@AddMonoidHom.instFunLike.{u_1, u_2} R S\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n            (@AddZeroClass.toAddZero.{u_2} S\n              (@AddMonoid.toAddZeroClass.{u_2} S\n                (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))))\n          f\n          (@HMul.hMul.{u_1, u_1, u_1} R R R\n            (@instHMul.{u_1} R (@Distrib.toMul.{u_1} R (@NonUnitalNonAssocSemiring.toDistrib.{u_1} R inst))) x y))\n        (@HMul.hMul.{u_2, u_2, u_2} S S S\n          (@instHMul.{u_2} S (@Distrib.toMul.{u_2} S (@NonUnitalNonAssocSemiring.toDistrib.{u_2} S inst_1)))\n          (@DFunLike.coe.{max (u_1 + 1) (u_2 + 1), u_1 + 1, u_2 + 1}\n            (@AddMonoidHom.{u_1, u_2} R S\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n              (@AddZeroClass.toAddZero.{u_2} S\n                (@AddMonoid.toAddZeroClass.{u_2} S\n                  (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))))\n            R (fun x => S)\n            (@AddMonoidHom.instFunLike.{u_1, u_2} R S\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n              (@AddZeroClass.toAddZero.{u_2} S\n                (@AddMonoid.toAddZeroClass.{u_2} S\n                  (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))))\n            f x)\n          (@DFunLike.coe.{max (u_1 + 1) (u_2 + 1), u_1 + 1, u_2 + 1}\n            (@AddMonoidHom.{u_1, u_2} R S\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n              (@AddZeroClass.toAddZero.{u_2} S\n                (@AddMonoid.toAddZeroClass.{u_2} S\n                  (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))))\n            R (fun x => S)\n            (@AddMonoidHom.instFunLike.{u_1, u_2} R S\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n              (@AddZeroClass.toAddZero.{u_2} S\n                (@AddMonoid.toAddZeroClass.{u_2} S\n                  (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))))\n            f y)))\n    (@Eq.{max (u_1 + 1) (u_2 + 1)}\n      (@AddMonoidHom.{u_1, max u_2 u_1} R\n        (@AddMonoidHom.{u_1, u_2} R S\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n          (@AddZeroClass.toAddZero.{u_2} S\n            (@AddMonoid.toAddZeroClass.{u_2} S\n              (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{max u_1 u_2}\n          (@AddMonoidHom.{u_1, u_2} R S\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n            (@AddZeroClass.toAddZero.{u_2} S\n              (@AddMonoid.toAddZeroClass.{u_2} S\n                (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))))\n          (@AddMonoid.toAddZeroClass.{max u_1 u_2}\n            (@AddMonoidHom.{u_1, u_2} R S\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n              (@AddZeroClass.toAddZero.{u_2} S\n                (@AddMonoid.toAddZeroClass.{u_2} S\n                  (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))))\n            (@AddCommMonoid.toAddMonoid.{max u_1 u_2}\n              (@AddMonoidHom.{u_1, u_2} R S\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n                (@AddZeroClass.toAddZero.{u_2} S\n                  (@AddMonoid.toAddZeroClass.{u_2} S\n                    (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))))\n              (@AddMonoidHom.instAddCommMonoid.{u_1, u_2} R S\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))\n                (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1))))))\n      (@AddMonoidHom.compr₂.{u_1, u_1, u_1, u_2} R R R S\n        (@AddMonoid.toAddZeroClass.{u_1} R\n          (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))\n        (@AddMonoid.toAddZeroClass.{u_1} R\n          (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))\n        (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)\n        (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1) (@AddMonoidHom.mul.{u_1} R inst) f)\n      (@AddMonoidHom.compl₂.{u_1, u_2, u_2, u_1} R S S R\n        (@AddMonoid.toAddZeroClass.{u_1} R\n          (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))\n        (@AddMonoid.toAddZeroClass.{u_2} S\n          (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))\n        (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)\n        (@AddMonoid.toAddZeroClass.{u_1} R\n          (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))\n        (@AddMonoidHom.comp.{u_1, u_2, u_2} R S\n          (@AddMonoidHom.{u_2, u_2} S S\n            (@AddZeroClass.toAddZero.{u_2} S\n              (@AddMonoid.toAddZeroClass.{u_2} S\n                (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1))))\n            (@AddZeroClass.toAddZero.{u_2} S\n              (@AddMonoid.toAddZeroClass.{u_2} S\n                (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))))\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n          (@AddZeroClass.toAddZero.{u_2} S\n            (@AddMonoid.toAddZeroClass.{u_2} S\n              (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1))))\n          (@AddZeroClass.toAddZero.{u_2}\n            (@AddMonoidHom.{u_2, u_2} S S\n              (@AddZeroClass.toAddZero.{u_2} S\n                (@AddMonoid.toAddZeroClass.{u_2} S\n                  (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1))))\n              (@AddZeroClass.toAddZero.{u_2} S\n                (@AddMonoid.toAddZeroClass.{u_2} S\n                  (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))))\n            (@AddMonoid.toAddZeroClass.{u_2}\n              (@AddMonoidHom.{u_2, u_2} S S\n                (@AddZeroClass.toAddZero.{u_2} S\n                  (@AddMonoid.toAddZeroClass.{u_2} S\n                    (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1))))\n                (@AddZeroClass.toAddZero.{u_2} S\n                  (@AddMonoid.toAddZeroClass.{u_2} S\n                    (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))))\n              (@AddCommMonoid.toAddMonoid.{u_2}\n                (@AddMonoidHom.{u_2, u_2} S S\n                  (@AddZeroClass.toAddZero.{u_2} S\n                    (@AddMonoid.toAddZeroClass.{u_2} S\n                      (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1))))\n                  (@AddZeroClass.toAddZero.{u_2} S\n                    (@AddMonoid.toAddZeroClass.{u_2} S\n                      (@AddCommMonoid.toAddMonoid.{u_2} S\n                        (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))))\n                (@AddMonoidHom.instAddCommMonoid.{u_2, u_2} S S\n                  (@AddMonoid.toAddZeroClass.{u_2} S\n                    (@AddCommMonoid.toAddMonoid.{u_2} S (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))\n                  (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_2} S inst_1)))))\n          (@AddMonoidHom.mul.{u_2} S inst_1) f)\n        f))"},{"kind":"definition","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-106cd64b9fa01229f035cce3388392a045663fc1016b4e8a500d10400a40e9ed","qualified_name":"AddMonoidHom.mul","statement":"{R : Type u_1} →\n  [inst : NonUnitalNonAssocSemiring.{u_1} R] →\n    @AddMonoidHom.{u_1, u_1} R\n      (@AddMonoidHom.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      (@AddZeroClass.toAddZero.{u_1} R\n        (@AddMonoid.toAddZeroClass.{u_1} R\n          (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n      (@AddZeroClass.toAddZero.{u_1}\n        (@AddMonoidHom.{u_1, u_1} R R\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n        (@AddMonoid.toAddZeroClass.{u_1}\n          (@AddMonoidHom.{u_1, u_1} R R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n          (@AddCommMonoid.toAddMonoid.{u_1}\n            (@AddMonoidHom.{u_1, u_1} R R\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n            (@AddMonoidHom.instAddCommMonoid.{u_1, u_1} R R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))\n              (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))"},{"kind":"definition","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-59f7d338548574ac4d72cad0197f58c5bba25f6238d3e03117322b0833af002c","qualified_name":"AddMonoidHom.mulLeft","statement":"{R : Type u_1} →\n  [inst : NonUnitalNonAssocSemiring.{u_1} R] →\n    R →\n      @AddMonoidHom.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-0779456da78b9923360e211ad99779b3b7d25fa2f2fc6e0a0dccd4d81d21b64e","qualified_name":"AddMonoidHom.mulLeft_eq_mulRight_iff_forall_commute","statement":"∀ {R : Type u_1} [inst : NonUnitalNonAssocSemiring.{u_1} R] {a : R},\n  Iff\n    (@Eq.{u_1 + 1}\n      (@AddMonoidHom.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      (@AddMonoidHom.mulLeft.{u_1} R inst a) (@AddMonoidHom.mulRight.{u_1} R inst a))\n    (∀ (b : R), @Commute.{u_1} R (@Distrib.toMul.{u_1} R (@NonUnitalNonAssocSemiring.toDistrib.{u_1} R inst)) a b)"},{"kind":"definition","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-6573eb2317ac75632581de227f4e3ab969fd887466d0f3a6415e9b42da2aa437","qualified_name":"AddMonoidHom.mulRight","statement":"{R : Type u_1} →\n  [inst : NonUnitalNonAssocSemiring.{u_1} R] →\n    R →\n      @AddMonoidHom.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-0e151b69b0afd9cf35d564386fa869eeb6b8fd4137bc626d5f1d5bf909cc9a61","qualified_name":"AddMonoidHom.mulRight_apply","statement":"∀ {R : Type u_1} [inst : NonUnitalNonAssocSemiring.{u_1} R] (a r : R),\n  @Eq.{u_1 + 1} R\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (@AddMonoidHom.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      R (fun x => R)\n      (@AddMonoidHom.instFunLike.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      (@AddMonoidHom.mulRight.{u_1} R inst r) a)\n    (@HMul.hMul.{u_1, u_1, u_1} R R R\n      (@instHMul.{u_1} R (@Distrib.toMul.{u_1} R (@NonUnitalNonAssocSemiring.toDistrib.{u_1} R inst))) a r)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-ed2e52ce3819c44ae92c049df9779232b79ce0fdb2bf05e484708e9ff44e9957","qualified_name":"AddMonoidHom.mulRight_eq_mulLeft_iff_forall_commute","statement":"∀ {R : Type u_1} [inst : NonUnitalNonAssocSemiring.{u_1} R] {b : R},\n  Iff\n    (@Eq.{u_1 + 1}\n      (@AddMonoidHom.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      (@AddMonoidHom.mulRight.{u_1} R inst b) (@AddMonoidHom.mulLeft.{u_1} R inst b))\n    (∀ (a : R), @Commute.{u_1} R (@Distrib.toMul.{u_1} R (@NonUnitalNonAssocSemiring.toDistrib.{u_1} R inst)) a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-36852943a8827262fd3eacba9de84807774da7a1c5fefe2c8eeb3473bab910c7","qualified_name":"AddMonoidHom.mul_apply","statement":"∀ {R : Type u_1} [inst : NonUnitalNonAssocSemiring.{u_1} R] (x y : R),\n  @Eq.{u_1 + 1} R\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (@AddMonoidHom.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      R (fun x => R)\n      (@AddMonoidHom.instFunLike.{u_1, u_1} R R\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n        (@AddZeroClass.toAddZero.{u_1} R\n          (@AddMonoid.toAddZeroClass.{u_1} R\n            (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n      (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n        (@AddMonoidHom.{u_1, u_1} R\n          (@AddMonoidHom.{u_1, u_1} R R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n          (@AddZeroClass.toAddZero.{u_1}\n            (@AddMonoidHom.{u_1, u_1} R R\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n            (@AddMonoid.toAddZeroClass.{u_1}\n              (@AddMonoidHom.{u_1, u_1} R R\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n              (@AddCommMonoid.toAddMonoid.{u_1}\n                (@AddMonoidHom.{u_1, u_1} R R\n                  (@AddZeroClass.toAddZero.{u_1} R\n                    (@AddMonoid.toAddZeroClass.{u_1} R\n                      (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n                  (@AddZeroClass.toAddZero.{u_1} R\n                    (@AddMonoid.toAddZeroClass.{u_1} R\n                      (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n                (@AddMonoidHom.instAddCommMonoid.{u_1, u_1} R R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))\n                  (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))))\n        R\n        (fun x =>\n          @AddMonoidHom.{u_1, u_1} R R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n        (@AddMonoidHom.instFunLike.{u_1, u_1} R\n          (@AddMonoidHom.{u_1, u_1} R R\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n            (@AddZeroClass.toAddZero.{u_1} R\n              (@AddMonoid.toAddZeroClass.{u_1} R\n                (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n          (@AddZeroClass.toAddZero.{u_1} R\n            (@AddMonoid.toAddZeroClass.{u_1} R\n              (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n          (@AddZeroClass.toAddZero.{u_1}\n            (@AddMonoidHom.{u_1, u_1} R R\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n              (@AddZeroClass.toAddZero.{u_1} R\n                (@AddMonoid.toAddZeroClass.{u_1} R\n                  (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n            (@AddMonoid.toAddZeroClass.{u_1}\n              (@AddMonoidHom.{u_1, u_1} R R\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n                (@AddZeroClass.toAddZero.{u_1} R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n              (@AddCommMonoid.toAddMonoid.{u_1}\n                (@AddMonoidHom.{u_1, u_1} R R\n                  (@AddZeroClass.toAddZero.{u_1} R\n                    (@AddMonoid.toAddZeroClass.{u_1} R\n                      (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))\n                  (@AddZeroClass.toAddZero.{u_1} R\n                    (@AddMonoid.toAddZeroClass.{u_1} R\n                      (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))))\n                (@AddMonoidHom.instAddCommMonoid.{u_1, u_1} R R\n                  (@AddMonoid.toAddZeroClass.{u_1} R\n                    (@AddCommMonoid.toAddMonoid.{u_1} R (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst)))\n                  (@NonUnitalNonAssocSemiring.toAddCommMonoid.{u_1} R inst))))))\n        (@AddMonoidHom.mul.{u_1} R inst) x)\n      y)\n    (@HMul.hMul.{u_1, u_1, u_1} R R R\n      (@instHMul.{u_1} R (@Distrib.toMul.{u_1} R (@NonUnitalNonAssocSemiring.toDistrib.{u_1} R inst))) x y)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a3299ea627e3563e55474fe0a8be6dcca3834d8e417ea6510a048d4ab51c565e","qualified_name":"AddSemigroup.to_isAssociative","statement":"∀ {α : Type u_1} [inst : AddSemigroup.{u_1} α],\n  @Std.Associative.{u_1 + 1} α fun x1 x2 =>\n    @HAdd.hAdd.{u_1, u_1, u_1} α α α (@instHAdd.{u_1} α (@AddSemigroup.toAdd.{u_1} α inst)) x1 x2"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-96492338f2f8f30d621e15181a08a096f4ff5fd30cb2454570cada292d26bfea","qualified_name":"AddSemigroup.to_isLawfulIdentity","statement":"∀ {M : Type u_4} [inst : AddZeroClass.{u_4} M],\n  @Std.LawfulIdentity.{u_4 + 1} M\n    (fun x1 x2 =>\n      @HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst))) x1 x2)\n    (@OfNat.ofNat.{u_4} M (nat_lit 0)\n      (@Zero.toOfNat0.{u_4} M (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst))))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-a01c2a4589aefdfd68c36c46fcfd6ad57dd31bdbf33fa5e42cb63928cebcbcde","qualified_name":"Bool.involutive_not","statement":"@Function.Involutive.{1} Bool Bool.not"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-5993bbc32c65cb34d055484be426d3ef9b4486a99ecba44ec5192d2c535fbc1f","qualified_name":"Complex.abs_cpow_inv_two_im","statement":"∀ (x : Complex),\n  @Eq.{1} Real\n    (@abs.{0} Real Real.lattice Real.instAddGroup\n      (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) x\n          (@Inv.inv.{0} Complex Complex.instInv\n            (@OfNat.ofNat.{0} Complex (nat_lit 2)\n              (@instOfNatAtLeastTwo.{0} Complex (nat_lit 2) Complex.instNatCast ⋯)))).im)\n    (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n        (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub)\n          (@Norm.norm.{0} Complex Complex.instNorm x) x.re)\n        (@OfNat.ofNat.{0} Real (nat_lit 2) (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast ⋯))).sqrt"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-ece9b91c98dc460f5153876312b96abe85ee0947c42c1e7eb954e1b553126e61","qualified_name":"Complex.cpow_inv_two_im_eq_neg_sqrt","statement":"∀ {x : Complex},\n  @LT.lt.{0} Real Real.instLT x.im (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n    @Eq.{1} Real\n      (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) x\n          (@Inv.inv.{0} Complex Complex.instInv\n            (@OfNat.ofNat.{0} Complex (nat_lit 2)\n              (@instOfNatAtLeastTwo.{0} Complex (nat_lit 2) Complex.instNatCast ⋯)))).im\n      (@Neg.neg.{0} Real Real.instNeg\n        (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n            (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub)\n              (@Norm.norm.{0} Complex Complex.instNorm x) x.re)\n            (@OfNat.ofNat.{0} Real (nat_lit 2) (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast ⋯))).sqrt)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-aeb7dd7624f8adac88f7fbf76f489c1ef46da64ab2fab7fa55122d15b1402708","qualified_name":"Complex.cpow_inv_two_im_eq_sqrt","statement":"∀ {x : Complex},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x.im →\n    @Eq.{1} Real\n      (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) x\n          (@Inv.inv.{0} Complex Complex.instInv\n            (@OfNat.ofNat.{0} Complex (nat_lit 2)\n              (@instOfNatAtLeastTwo.{0} Complex (nat_lit 2) Complex.instNatCast ⋯)))).im\n      (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n          (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub)\n            (@Norm.norm.{0} Complex Complex.instNorm x) x.re)\n          (@OfNat.ofNat.{0} Real (nat_lit 2) (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast ⋯))).sqrt"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-73093f8aead121ad065223f2c84cfe7adbd25d348258611bcc39e52578cd8a2a","qualified_name":"Complex.cpow_inv_two_re","statement":"∀ (x : Complex),\n  @Eq.{1} Real\n    (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) x\n        (@Inv.inv.{0} Complex Complex.instInv\n          (@OfNat.ofNat.{0} Complex (nat_lit 2)\n            (@instOfNatAtLeastTwo.{0} Complex (nat_lit 2) Complex.instNatCast ⋯)))).re\n    (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n        (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd)\n          (@Norm.norm.{0} Complex Complex.instNorm x) x.re)\n        (@OfNat.ofNat.{0} Real (nat_lit 2) (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast ⋯))).sqrt"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-f07df05699f1c26f45c6f6a22285ada85d5733654205fc86f68f7e4fb0964905","qualified_name":"Complex.cpow_mul_ofReal_nonneg","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y : Real) (z : Complex),\n      @Eq.{1} Complex\n        (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) (↑x)\n          (@HMul.hMul.{0, 0, 0} Complex Complex Complex (@instHMul.{0} Complex Complex.instMul) (↑y) z))\n        (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow)\n          (↑(@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)) z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-2898b80ebc630c03289172b0c8daa264a4286e0f80b0cb84a4e4b35565008662","qualified_name":"Complex.cpow_ofReal","statement":"∀ (x : Complex) (y : Real),\n  @Eq.{1} Complex (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) x ↑y)\n    (@HMul.hMul.{0, 0, 0} Complex Complex Complex (@instHMul.{0} Complex Complex.instMul)\n      (↑(@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n          (@Norm.norm.{0} Complex Complex.instNorm x) y))\n      (@HAdd.hAdd.{0, 0, 0} Complex Complex Complex (@instHAdd.{0} Complex Complex.instAdd)\n        (↑(Real.cos (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) x.arg y)))\n        (@HMul.hMul.{0, 0, 0} Complex Complex Complex (@instHMul.{0} Complex Complex.instMul)\n          (↑(Real.sin (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) x.arg y))) Complex.I)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-a3b45f105214e7eddfb52e20dfe0e415d089c0384712a2b4b06a97a7c2e2e071","qualified_name":"Complex.cpow_ofReal_im","statement":"∀ (x : Complex) (y : Real),\n  @Eq.{1} Real (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) x ↑y).im\n    (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n      (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n        (@Norm.norm.{0} Complex Complex.instNorm x) y)\n      (Real.sin (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) x.arg y)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-b993da4f0cfb75d4e888179a95bf05b6cca801ffea5c4cd1dbc7cdbc3f2a85ab","qualified_name":"Complex.cpow_ofReal_re","statement":"∀ (x : Complex) (y : Real),\n  @Eq.{1} Real (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) x ↑y).re\n    (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n      (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n        (@Norm.norm.{0} Complex Complex.instNorm x) y)\n      (Real.cos (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) x.arg y)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-086f470a348a889ca08b07e02d3852487f977ef5654e73c83bd89ad1b10f1175","qualified_name":"Complex.inv_natCast_cpow_ofReal_pos","statement":"∀ {n : Nat},\n  @Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    ∀ (x : Real),\n      @LT.lt.{0} Complex (@Preorder.toLT.{0} Complex (@PartialOrder.toPreorder.{0} Complex Complex.partialOrder))\n        (@OfNat.ofNat.{0} Complex (nat_lit 0) (@Zero.toOfNat0.{0} Complex Complex.instZero))\n        (@Inv.inv.{0} Complex Complex.instInv\n          (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow)\n            (@Nat.cast.{0} Complex Complex.instNatCast n) ↑x))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-ba1825cfee4f3b0c6a611e7165eb0368aaa187fdb873b650a97cf09dd1889c42","qualified_name":"Complex.norm_cpow_eq_rpow_re_of_nonneg","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ {y : Complex},\n      @Ne.{1} Real y.re (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        @Eq.{1} Real\n          (@Norm.norm.{0} Complex Complex.instNorm\n            (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) (↑x) y))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y.re)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-a8330f799ae52764011a8fed2a234e5bbbe6df98051b8fb533b6c9d7ae57768e","qualified_name":"Complex.norm_cpow_eq_rpow_re_of_pos","statement":"∀ {x : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y : Complex),\n      @Eq.{1} Real\n        (@Norm.norm.{0} Complex Complex.instNorm\n          (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) (↑x) y))\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y.re)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-7abfa85b427f631ef6276af695f73eaf483bc00abb9dcacc4603f1d8f86e22f0","qualified_name":"Complex.norm_cpow_inv_nat","statement":"∀ (x : Complex) (n : Nat),\n  @Eq.{1} Real\n    (@Norm.norm.{0} Complex Complex.instNorm\n      (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) x\n        (@Inv.inv.{0} Complex Complex.instInv (@Nat.cast.{0} Complex Complex.instNatCast n))))\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n      (@Norm.norm.{0} Complex Complex.instNorm x)\n      (@Inv.inv.{0} Real Real.instInv (@Nat.cast.{0} Real Real.instNatCast n)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-47adfa8ee4f9764090592a1d227ca01fc49b3768728cfd65067ccdc7297d5c6d","qualified_name":"Complex.norm_cpow_le","statement":"∀ (z w : Complex),\n  @LE.le.{0} Real Real.instLE\n    (@Norm.norm.{0} Complex Complex.instNorm\n      (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) z w))\n    (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n      (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n        (@Norm.norm.{0} Complex Complex.instNorm z) w.re)\n      (Real.exp (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) z.arg w.im)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-8080f44e73c9ce63428bbb06eebe8a4fc2468a69bdf7069f138b95bb82a99353","qualified_name":"Complex.norm_cpow_of_imp","statement":"∀ {z w : Complex},\n  (@Eq.{1} Complex z (@OfNat.ofNat.{0} Complex (nat_lit 0) (@Zero.toOfNat0.{0} Complex Complex.instZero)) →\n      @Eq.{1} Real w.re (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        @Eq.{1} Complex w (@OfNat.ofNat.{0} Complex (nat_lit 0) (@Zero.toOfNat0.{0} Complex Complex.instZero))) →\n    @Eq.{1} Real\n      (@Norm.norm.{0} Complex Complex.instNorm\n        (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) z w))\n      (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n          (@Norm.norm.{0} Complex Complex.instNorm z) w.re)\n        (Real.exp (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) z.arg w.im)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-59370d5e6b6cdd0f4eed413548d4ac77428ba54644b4602202eca41a7bf22837","qualified_name":"Complex.norm_cpow_of_ne_zero","statement":"∀ {z : Complex},\n  @Ne.{1} Complex z (@OfNat.ofNat.{0} Complex (nat_lit 0) (@Zero.toOfNat0.{0} Complex Complex.instZero)) →\n    ∀ (w : Complex),\n      @Eq.{1} Real\n        (@Norm.norm.{0} Complex Complex.instNorm\n          (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) z w))\n        (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n            (@Norm.norm.{0} Complex Complex.instNorm z) w.re)\n          (Real.exp (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) z.arg w.im)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-096c4d5618c222c28284a4d7fca4db1e7f9172f63790e7143d2de229900542d0","qualified_name":"Complex.norm_cpow_real","statement":"∀ (x : Complex) (y : Real),\n  @Eq.{1} Real\n    (@Norm.norm.{0} Complex Complex.instNorm\n      (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) x ↑y))\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n      (@Norm.norm.{0} Complex Complex.instNorm x) y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-d17239bbfbd149849f74aa14a59afd09cf9ec96b4c5272898c1ecf94d9f831cf","qualified_name":"Complex.norm_log_natCast_le_rpow_div","statement":"∀ (n : Nat) {ε : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) ε →\n    @LE.le.{0} Real Real.instLE\n      (@Norm.norm.{0} Complex Complex.instNorm (Complex.log (@Nat.cast.{0} Complex Complex.instNatCast n)))\n      (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n          (@Nat.cast.{0} Real Real.instNatCast n) ε)\n        ε)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-f2a99e3ee4b83c35645b754347867c63affa16edaeb6daca90b9693a55aa25da","qualified_name":"Complex.norm_natCast_cpow_le_norm_natCast_cpow_iff","statement":"∀ {n : Nat},\n  @LT.lt.{0} Nat instLTNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) n →\n    ∀ {w z : Complex},\n      Iff\n        (@LE.le.{0} Real Real.instLE\n          (@Norm.norm.{0} Complex Complex.instNorm\n            (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow)\n              (@Nat.cast.{0} Complex Complex.instNatCast n) w))\n          (@Norm.norm.{0} Complex Complex.instNorm\n            (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow)\n              (@Nat.cast.{0} Complex Complex.instNatCast n) z)))\n        (@LE.le.{0} Real Real.instLE w.re z.re)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-5d0a054a89f775aefc747abf2c6df491e367b66640a35b2c62ed98fa2a908434","qualified_name":"Complex.norm_natCast_cpow_le_norm_natCast_cpow_of_pos","statement":"∀ {n : Nat},\n  @LT.lt.{0} Nat instLTNat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) n →\n    ∀ {w z : Complex},\n      @LE.le.{0} Real Real.instLE w.re z.re →\n        @LE.le.{0} Real Real.instLE\n          (@Norm.norm.{0} Complex Complex.instNorm\n            (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow)\n              (@Nat.cast.{0} Complex Complex.instNatCast n) w))\n          (@Norm.norm.{0} Complex Complex.instNorm\n            (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow)\n              (@Nat.cast.{0} Complex Complex.instNatCast n) z))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-576e8d76cc87a3347899dd3ea40101cba4b905d74f2322a09e142d0fe1a23a6e","qualified_name":"Complex.norm_natCast_cpow_of_pos","statement":"∀ {n : Nat},\n  @LT.lt.{0} Nat instLTNat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) n →\n    ∀ (s : Complex),\n      @Eq.{1} Real\n        (@Norm.norm.{0} Complex Complex.instNorm\n          (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow)\n            (@Nat.cast.{0} Complex Complex.instNatCast n) s))\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n          (@Nat.cast.{0} Real Real.instNatCast n) s.re)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-a9c94a99ee30b6653120b45cb79258bedc197178ae6497c7d6d3811b62971870","qualified_name":"Complex.norm_natCast_cpow_of_re_ne_zero","statement":"∀ (n : Nat) {s : Complex},\n  @Ne.{1} Real s.re (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n    @Eq.{1} Real\n      (@Norm.norm.{0} Complex Complex.instNorm\n        (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow)\n          (@Nat.cast.{0} Complex Complex.instNatCast n) s))\n      (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n        (@Nat.cast.{0} Real Real.instNatCast n) s.re)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-c805a92ca919efcf9e60f8b5924841ccd5abb3b6e986578775a62c0c8609057e","qualified_name":"Complex.norm_natCast_cpow_pos_of_pos","statement":"∀ {n : Nat},\n  @LT.lt.{0} Nat instLTNat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) n →\n    ∀ (s : Complex),\n      @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))\n        (@Norm.norm.{0} Complex Complex.instNorm\n          (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow)\n            (@Nat.cast.{0} Complex Complex.instNatCast n) s))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-66509a7396b0b368d46afee28e6c44a7d15cbe7ee2de1bfe4d567ecb31aa0cbf","qualified_name":"Complex.norm_ofReal_cpow_eventually_eq_atTop","statement":"∀ (c : Complex),\n  @Filter.EventuallyEq.{0, 0} Real Real (@Filter.atTop.{0} Real Real.instPreorder)\n    (fun t =>\n      @Norm.norm.{0} Complex Complex.instNorm\n        (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) (↑t) c))\n    fun t => @HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) t c.re"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-502d9483f37e35aa158d2b20768fa9d4d4da10200031d897a62151c9a618a3c6","qualified_name":"Complex.norm_prime_cpow_le_one_half","statement":"∀ (p : Nat.Primes) {s : Complex},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) s.re →\n    @LE.le.{0} Real Real.instLE\n      (@Norm.norm.{0} Complex Complex.instNorm\n        (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow)\n          (@Nat.cast.{0} Complex Complex.instNatCast (@Subtype.val.{1} Nat (fun p => Nat.Prime p) p))\n          (@Neg.neg.{0} Complex Complex.instNeg s)))\n      (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n        (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))\n        (@OfNat.ofNat.{0} Real (nat_lit 2) (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast ⋯)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-484ef8edc10febc958ed98bd332cc2335fda76e875f25611c70874769f352656","qualified_name":"Complex.ofReal_cpow","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y : Real),\n      @Eq.{1} Complex (↑(@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y))\n        (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) ↑x ↑y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-328cd590016b29c67549696b9c93f5af4f91cd973daae8442935ef33224e9f7c","qualified_name":"Complex.ofReal_cpow_of_nonpos","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n    ∀ (y : Complex),\n      @Eq.{1} Complex\n        (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) (↑x) y)\n        (@HMul.hMul.{0, 0, 0} Complex Complex Complex (@instHMul.{0} Complex Complex.instMul)\n          (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow)\n            (@Neg.neg.{0} Complex Complex.instNeg ↑x) y)\n          (Complex.exp\n            (@HMul.hMul.{0, 0, 0} Complex Complex Complex (@instHMul.{0} Complex Complex.instMul)\n              (@HMul.hMul.{0, 0, 0} Complex Complex Complex (@instHMul.{0} Complex Complex.instMul) (↑Real.pi)\n                Complex.I)\n              y)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-9d09afc5b08e918556dd2adabccb7f12c3d822cb6a087eb471cd6c8c32de0186","qualified_name":"Complex.one_sub_prime_cpow_ne_zero","statement":"∀ {p : Nat},\n  Nat.Prime p →\n    ∀ {s : Complex},\n      @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) s.re →\n        @Ne.{1} Complex\n          (@HSub.hSub.{0, 0, 0} Complex Complex Complex (@instHSub.{0} Complex Complex.instSub)\n            (@OfNat.ofNat.{0} Complex (nat_lit 1) (@One.toOfNat1.{0} Complex Complex.instOne))\n            (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow)\n              (@Nat.cast.{0} Complex Complex.instNatCast p) (@Neg.neg.{0} Complex Complex.instNeg s)))\n          (@OfNat.ofNat.{0} Complex (nat_lit 0) (@Zero.toOfNat0.{0} Complex Complex.instZero))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-76277bb42c1f11597c7c83b217f38d57bd52447f69356b6bd8d0c158095621db","qualified_name":"Decidable.List.eq_or_ne_mem_of_mem","statement":"∀ {α : Type u} [DecidableEq.{u + 1} α] {a b : α} {l : List.{u} α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.cons.{u} α b l) a →\n    Or (@Eq.{u + 1} α a b)\n      (And (@Ne.{u + 1} α a b) (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-a8b1bf3542259003904a1977b9d38a72b1c072b3c8510109d9b9c665ce4c62d7","qualified_name":"Decidable.eq_iff_ge_not_gt","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α}\n  [@DecidableLE.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst))],\n  Iff (@Eq.{u_2 + 1} α a b)\n    (And (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)\n      (Not (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-991a5e739224e4dee2748b8a1ee9d7b11da9d9373b6f42d187180cde0a2d6fdf","qualified_name":"Decidable.eq_iff_le_not_lt","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α}\n  [@DecidableLE.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst))],\n  Iff (@Eq.{u_2 + 1} α a b)\n    (And (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)\n      (Not (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-91ec27013d4beeb5e0d987627981efdb96fafab448c5b909a8cda12af4456d8f","qualified_name":"Decidable.eq_or_lt_of_le","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α}\n  [@DecidableLE.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst))],\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b →\n    Or (@Eq.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-a6cc2440d46175245ee71939127b008ea9cf5d3fc72c8389d91d175450431467","qualified_name":"Decidable.eq_or_lt_of_le'","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α}\n  [@DecidableLE.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst))],\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a →\n    Or (@Eq.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-c87568630cce161d1dd71c661db7eafad2cf61b543baae72cd0f4dbeed03e2a1","qualified_name":"Decidable.le_iff_eq_or_lt","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α}\n  [@DecidableLE.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst))],\n  Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)\n    (Or (@Eq.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-46d4485944a6518a8bae56a6557b4a7cf89921a753d2d197ef3481cf6a54119e","qualified_name":"Decidable.le_iff_eq_or_lt'","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α}\n  [@DecidableLE.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst))],\n  Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)\n    (Or (@Eq.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-f37305c8063f2869cdcc1be627d5442715f7de727b132a246f7a96e79e3d563b","qualified_name":"Decidable.ne_iff_gt_iff_ge","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α} [DecidableEq.{u_2 + 1} α],\n  Iff (Iff (@Ne.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a))\n    (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-d2fd42cb0fa6e5d12c6b185b356881e8d621acbe8d8290ff27314557c48926c5","qualified_name":"Decidable.ne_iff_lt_iff_le","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α} [DecidableEq.{u_2 + 1} α],\n  Iff (Iff (@Ne.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b))\n    (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)"},{"kind":"inductive","module":"Mathlib.Order.Basic","object_id":"object-979c928e0083c9e0c410388dd156d2a78a165a8b39dadb6df1e37765ae93a2e8","qualified_name":"DenselyOrdered","statement":"(α : Type u_5) → [LT.{u_5} α] → Prop"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-d4ee907bee1a7578062e058e7e0d660794ee2e6250e2a4ae363ac7531a5549ea","qualified_name":"DenselyOrdered.dense","statement":"∀ {α : Type u_5} {inst : LT.{u_5} α} [self : @DenselyOrdered.{u_5} α inst] (a₁ a₂ : α),\n  @LT.lt.{u_5} α inst a₁ a₂ → ∃ a, And (@LT.lt.{u_5} α inst a₁ a) (@LT.lt.{u_5} α inst a a₂)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-55256e2e8f45b6e9796cb93cbf4a1350a3950363c81f6dae87ae6ad55d270116","qualified_name":"DenselyOrdered.dense'","statement":"∀ {α : Type u_2} [inst : LT.{u_2} α] [@DenselyOrdered.{u_2} α inst] (a₁ a₂ : α),\n  @LT.lt.{u_2} α inst a₁ a₂ → ∃ a, And (@LT.lt.{u_2} α inst a a₂) (@LT.lt.{u_2} α inst a₁ a)"},{"kind":"constructor","module":"Mathlib.Order.Basic","object_id":"object-60f3c0ee630972e674c571bcc0d0672803637ef42ad5c3a2c45a7d0940758522","qualified_name":"DenselyOrdered.mk","statement":"∀ {α : Type u_5} [inst : LT.{u_5} α],\n  (∀ (a₁ a₂ : α), @LT.lt.{u_5} α inst a₁ a₂ → ∃ a, And (@LT.lt.{u_5} α inst a₁ a) (@LT.lt.{u_5} α inst a a₂)) →\n    @DenselyOrdered.{u_5} α inst"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-2a27afe7610ed16a53e9967089f4223c121cc4239b64fdde74c6222b342ebe75","qualified_name":"DenselyOrdered.mk'","statement":"∀ {α : Type u_2} [inst : LT.{u_2} α],\n  (∀ (a₁ a₂ : α), @LT.lt.{u_2} α inst a₁ a₂ → ∃ a, And (@LT.lt.{u_2} α inst a a₂) (@LT.lt.{u_2} α inst a₁ a)) →\n    @DenselyOrdered.{u_2} α inst"},{"kind":"definition","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ec3ce07c242f4382b5785c4653cdc39e02f745ec3635598d447a14b3853c0f49","qualified_name":"DivisionMonoid.toDivInvOneMonoid","statement":"{α : Type u_1} → [DivisionMonoid.{u_1} α] → DivInvOneMonoid.{u_1} α"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-02182021f3cfc20bf1e6c5f752ce998d51eca8feda653f88e8824bbf2504a1dc","qualified_name":"Eq.ge","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α a b → @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) b a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-06a0c3ab7e627b2d1f1f3f8194884304ae7ad092c88b1ca4fb550473f65a2034","qualified_name":"Eq.le","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α a b → @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-baf08561f1ef3baf7d82a96ab62eebd8e53d1511a6903c67497acbf3afce0a19","qualified_name":"Eq.not_gt","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b : α},\n  @Eq.{u_2 + 1} α a b → Not (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-aeda977ee45b236af819a0b3fe0b893fc0cc837dccca2014987b9fd7119ad38e","qualified_name":"Eq.not_lt","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b : α},\n  @Eq.{u_2 + 1} α a b → Not (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-ece0c786b8dd1fa04b9ac156d47130f787e4182074f4df9d844411c8463816b1","qualified_name":"Eq.trans_ge","statement":"∀ {α : Type u_1} {a b c : α} [inst : LE.{u_1} α],\n  @Eq.{u_1 + 1} α a b → @LE.le.{u_1} α inst c b → @LE.le.{u_1} α inst c a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-0208ffe8600ac8de624d889092de9c4dc04bb51d10d3d262b9a0b9af32144007","qualified_name":"Eq.trans_gt","statement":"∀ {α : Type u_1} {a b c : α} [inst : LT.{u_1} α],\n  @Eq.{u_1 + 1} α a b → @LT.lt.{u_1} α inst c b → @LT.lt.{u_1} α inst c a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-b79827f663d14a3fd9c17bb4f982fd833419d98c547d69e4fb32726cc7b0d797","qualified_name":"Eq.trans_le","statement":"∀ {α : Type u_1} {a b c : α} [inst : LE.{u_1} α],\n  @Eq.{u_1 + 1} α a b → @LE.le.{u_1} α inst b c → @LE.le.{u_1} α inst a c"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-340313e219532121361881c8f9eddeb5e2f09b9bba8c392e4f1f4fb8573b2e97","qualified_name":"Eq.trans_lt","statement":"∀ {α : Type u_1} {a b c : α} [inst : LT.{u_1} α],\n  @Eq.{u_1 + 1} α a b → @LT.lt.{u_1} α inst b c → @LT.lt.{u_1} α inst a c"},{"kind":"definition","module":"Mathlib.Data.Finset.Basic","object_id":"object-8ccf359106276b7451f1afe86959407f3ed65bb2cc67f7202ecbf30253a3ec04","qualified_name":"Equiv.Finset.disjUnionEquiv","statement":"{α : Type u_1} →\n  [DecidableEq.{u_1 + 1} α] →\n    (s t : Finset.{u_1} α) →\n      (h : @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t) →\n        Equiv.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t) ↥(@Finset.disjUnion.{u_1} α s t h)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-f578cbaac93f9713e820420227292a5d9e0c0907f638e358dc7782a6c977eb87","qualified_name":"Equiv.Finset.disjUnionEquiv_inl","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α}\n  (h : @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t) (x : ↥s),\n  @Eq.{u_1 + 1} (↥(@Finset.disjUnion.{u_1} α s t h))\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (Equiv.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t) ↥(@Finset.disjUnion.{u_1} α s t h)) (Sum.{u_1, u_1} ↥s ↥t)\n      (fun x => ↥(@Finset.disjUnion.{u_1} α s t h))\n      (@EquivLike.toFunLike.{u_1 + 1, u_1 + 1, u_1 + 1}\n        (Equiv.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t) ↥(@Finset.disjUnion.{u_1} α s t h)) (Sum.{u_1, u_1} ↥s ↥t)\n        (↥(@Finset.disjUnion.{u_1} α s t h))\n        (@Equiv.instEquivLike.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t) ↥(@Finset.disjUnion.{u_1} α s t h)))\n      (@Equiv.Finset.disjUnionEquiv.{u_1} α inst s t h) (@Sum.inl.{u_1, u_1} (↥s) (↥t) x))\n    (@Subtype.mk.{u_1 + 1} α\n      (fun x =>\n        @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n          (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α))\n          (@Finset.disjUnion.{u_1} α s t h) x)\n      (@Subtype.val.{u_1 + 1} α\n        (fun x =>\n          @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n            (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s x)\n        x)\n      ⋯)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-94898bd206d2bcd71b4a6ff1067622b8b1122bdd7dfacacd0fb48a34866abdba","qualified_name":"Equiv.Finset.disjUnionEquiv_inr","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α}\n  (h : @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t) (y : ↥t),\n  @Eq.{u_1 + 1} (↥(@Finset.disjUnion.{u_1} α s t h))\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (Equiv.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t) ↥(@Finset.disjUnion.{u_1} α s t h)) (Sum.{u_1, u_1} ↥s ↥t)\n      (fun x => ↥(@Finset.disjUnion.{u_1} α s t h))\n      (@EquivLike.toFunLike.{u_1 + 1, u_1 + 1, u_1 + 1}\n        (Equiv.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t) ↥(@Finset.disjUnion.{u_1} α s t h)) (Sum.{u_1, u_1} ↥s ↥t)\n        (↥(@Finset.disjUnion.{u_1} α s t h))\n        (@Equiv.instEquivLike.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t) ↥(@Finset.disjUnion.{u_1} α s t h)))\n      (@Equiv.Finset.disjUnionEquiv.{u_1} α inst s t h) (@Sum.inr.{u_1, u_1} (↥s) (↥t) y))\n    (@Subtype.mk.{u_1 + 1} α\n      (fun x =>\n        @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n          (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α))\n          (@Finset.disjUnion.{u_1} α s t h) x)\n      (@Subtype.val.{u_1 + 1} α\n        (fun x =>\n          @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n            (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) t x)\n        y)\n      ⋯)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-c525c27e62c03854ba06b53b389f972597eb77404810f19a436e700bfb845bc5","qualified_name":"Equiv.Finset.disjUnionEquiv_symm_left","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α}\n  (h : @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t) {i : α}\n  (hi :\n    @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s i)\n  (hi' :\n    @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α))\n      (@Finset.disjUnion.{u_1} α s t h) i),\n  @Eq.{u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t)\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (Equiv.{u_1 + 1, u_1 + 1} (↥(@Finset.disjUnion.{u_1} α s t h)) (Sum.{u_1, u_1} ↥s ↥t))\n      (↥(@Finset.disjUnion.{u_1} α s t h)) (fun x => Sum.{u_1, u_1} ↥s ↥t)\n      (@EquivLike.toFunLike.{u_1 + 1, u_1 + 1, u_1 + 1}\n        (Equiv.{u_1 + 1, u_1 + 1} (↥(@Finset.disjUnion.{u_1} α s t h)) (Sum.{u_1, u_1} ↥s ↥t))\n        (↥(@Finset.disjUnion.{u_1} α s t h)) (Sum.{u_1, u_1} ↥s ↥t)\n        (@Equiv.instEquivLike.{u_1 + 1, u_1 + 1} (↥(@Finset.disjUnion.{u_1} α s t h)) (Sum.{u_1, u_1} ↥s ↥t)))\n      (@Equiv.symm.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t) (↥(@Finset.disjUnion.{u_1} α s t h))\n        (@Equiv.Finset.disjUnionEquiv.{u_1} α inst s t h))\n      (@Subtype.mk.{u_1 + 1} α\n        (fun x =>\n          @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n            (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α))\n            (@Finset.disjUnion.{u_1} α s t h) x)\n        i hi'))\n    (@Sum.inl.{u_1, u_1} (↥s) (↥t)\n      (@Subtype.mk.{u_1 + 1} α\n        (fun x =>\n          @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n            (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s x)\n        i hi))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-f64fce32a15f51762a3ca168b76eb4ced7637be3ffa395afc082a580ca0bbbc1","qualified_name":"Equiv.Finset.disjUnionEquiv_symm_right","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α}\n  (h : @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t) {i : α}\n  (hi :\n    @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) t i)\n  (hi' :\n    @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α))\n      (@Finset.disjUnion.{u_1} α s t h) i),\n  @Eq.{u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t)\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (Equiv.{u_1 + 1, u_1 + 1} (↥(@Finset.disjUnion.{u_1} α s t h)) (Sum.{u_1, u_1} ↥s ↥t))\n      (↥(@Finset.disjUnion.{u_1} α s t h)) (fun x => Sum.{u_1, u_1} ↥s ↥t)\n      (@EquivLike.toFunLike.{u_1 + 1, u_1 + 1, u_1 + 1}\n        (Equiv.{u_1 + 1, u_1 + 1} (↥(@Finset.disjUnion.{u_1} α s t h)) (Sum.{u_1, u_1} ↥s ↥t))\n        (↥(@Finset.disjUnion.{u_1} α s t h)) (Sum.{u_1, u_1} ↥s ↥t)\n        (@Equiv.instEquivLike.{u_1 + 1, u_1 + 1} (↥(@Finset.disjUnion.{u_1} α s t h)) (Sum.{u_1, u_1} ↥s ↥t)))\n      (@Equiv.symm.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t) (↥(@Finset.disjUnion.{u_1} α s t h))\n        (@Equiv.Finset.disjUnionEquiv.{u_1} α inst s t h))\n      (@Subtype.mk.{u_1 + 1} α\n        (fun x =>\n          @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n            (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α))\n            (@Finset.disjUnion.{u_1} α s t h) x)\n        i hi'))\n    (@Sum.inr.{u_1, u_1} (↥s) (↥t)\n      (@Subtype.mk.{u_1 + 1} α\n        (fun x =>\n          @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n            (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) t x)\n        i hi))"},{"kind":"definition","module":"Mathlib.Data.Finset.Basic","object_id":"object-cc0ba9eb3eb94db3160b3cb48a2be532dee26e3c2913a75be5c48966f0cc6f81","qualified_name":"Equiv.Finset.union","statement":"{α : Type u_1} →\n  [inst : DecidableEq.{u_1 + 1} α] →\n    (s t : Finset.{u_1} α) →\n      @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t →\n        Equiv.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t)\n          ↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-25005dc563a75500d54c46c1a8e0c010af7fc2d36ec7969fd0cc662b9d4d05b1","qualified_name":"Equiv.Finset.union_inl","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α}\n  (h : @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t) (x : ↥s),\n  @Eq.{u_1 + 1} (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (Equiv.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t)\n        ↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n      (Sum.{u_1, u_1} ↥s ↥t) (fun x => ↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n      (@EquivLike.toFunLike.{u_1 + 1, u_1 + 1, u_1 + 1}\n        (Equiv.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t)\n          ↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n        (Sum.{u_1, u_1} ↥s ↥t) (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n        (@Equiv.instEquivLike.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t)\n          ↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t)))\n      (@Equiv.Finset.union.{u_1} α inst s t h) (@Sum.inl.{u_1, u_1} (↥s) (↥t) x))\n    (@Subtype.mk.{u_1 + 1} α\n      (fun x =>\n        @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n          (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α))\n          (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t) x)\n      (@Subtype.val.{u_1 + 1} α\n        (fun x =>\n          @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n            (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s x)\n        x)\n      ⋯)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-1eb6aaca90766173325ebf2b03d1d5b1e356a109f4c4807087b9ea2040157486","qualified_name":"Equiv.Finset.union_inr","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α}\n  (h : @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t) (y : ↥t),\n  @Eq.{u_1 + 1} (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (Equiv.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t)\n        ↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n      (Sum.{u_1, u_1} ↥s ↥t) (fun x => ↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n      (@EquivLike.toFunLike.{u_1 + 1, u_1 + 1, u_1 + 1}\n        (Equiv.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t)\n          ↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n        (Sum.{u_1, u_1} ↥s ↥t) (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n        (@Equiv.instEquivLike.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t)\n          ↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t)))\n      (@Equiv.Finset.union.{u_1} α inst s t h) (@Sum.inr.{u_1, u_1} (↥s) (↥t) y))\n    (@Subtype.mk.{u_1 + 1} α\n      (fun x =>\n        @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n          (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α))\n          (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t) x)\n      (@Subtype.val.{u_1 + 1} α\n        (fun x =>\n          @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n            (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) t x)\n        y)\n      ⋯)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-21a58e1fc4671754152cc1dea0e19cc64f0aadf9c7802defd5154f71106c289e","qualified_name":"Equiv.Finset.union_symm_left","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α}\n  (h : @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t) {i : α}\n  (hi :\n    @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s i)\n  (hi' :\n    @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α))\n      (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t) i),\n  @Eq.{u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t)\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (Equiv.{u_1 + 1, u_1 + 1} (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n        (Sum.{u_1, u_1} ↥s ↥t))\n      (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t)) (fun x => Sum.{u_1, u_1} ↥s ↥t)\n      (@EquivLike.toFunLike.{u_1 + 1, u_1 + 1, u_1 + 1}\n        (Equiv.{u_1 + 1, u_1 + 1} (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n          (Sum.{u_1, u_1} ↥s ↥t))\n        (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t)) (Sum.{u_1, u_1} ↥s ↥t)\n        (@Equiv.instEquivLike.{u_1 + 1, u_1 + 1}\n          (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t)) (Sum.{u_1, u_1} ↥s ↥t)))\n      (@Equiv.symm.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t)\n        (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n        (@Equiv.Finset.union.{u_1} α inst s t h))\n      (@Subtype.mk.{u_1 + 1} α\n        (fun x =>\n          @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n            (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α))\n            (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t) x)\n        i hi'))\n    (@Sum.inl.{u_1, u_1} (↥s) (↥t)\n      (@Subtype.mk.{u_1 + 1} α\n        (fun x =>\n          @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n            (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s x)\n        i hi))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-3f17c31cd125ab2fb782cab771ac45c3fbbabe87581343fb8e8b5484ec0f0841","qualified_name":"Equiv.Finset.union_symm_right","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α}\n  (h : @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t) {i : α}\n  (hi :\n    @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) t i)\n  (hi' :\n    @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α))\n      (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t) i),\n  @Eq.{u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t)\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (Equiv.{u_1 + 1, u_1 + 1} (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n        (Sum.{u_1, u_1} ↥s ↥t))\n      (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t)) (fun x => Sum.{u_1, u_1} ↥s ↥t)\n      (@EquivLike.toFunLike.{u_1 + 1, u_1 + 1, u_1 + 1}\n        (Equiv.{u_1 + 1, u_1 + 1} (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n          (Sum.{u_1, u_1} ↥s ↥t))\n        (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t)) (Sum.{u_1, u_1} ↥s ↥t)\n        (@Equiv.instEquivLike.{u_1 + 1, u_1 + 1}\n          (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t)) (Sum.{u_1, u_1} ↥s ↥t)))\n      (@Equiv.symm.{u_1 + 1, u_1 + 1} (Sum.{u_1, u_1} ↥s ↥t)\n        (↥(@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t))\n        (@Equiv.Finset.union.{u_1} α inst s t h))\n      (@Subtype.mk.{u_1 + 1} α\n        (fun x =>\n          @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n            (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α))\n            (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t) x)\n        i hi'))\n    (@Sum.inr.{u_1, u_1} (↥s) (↥t)\n      (@Subtype.mk.{u_1 + 1} α\n        (fun x =>\n          @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n            (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) t x)\n        i hi))"},{"kind":"definition","module":"Mathlib.Data.Finset.Basic","object_id":"object-caebe61b574ecec837bcb3cb4b3d31f918db225f35f3c60408327a199ebbb044","qualified_name":"Equiv.piFinsetUnion","statement":"{ι : Type u_4} →\n  [inst : DecidableEq.{u_4 + 1} ι] →\n    (α : ι → Type u_3) →\n      {s t : Finset.{u_4} ι} →\n        @Disjoint.{u_4} (Finset.{u_4} ι) (@Finset.instPartialOrder.{u_4} ι) (@Finset.instOrderBot.{u_4} ι) s t →\n          Equiv.{(max u_3 u_4) + 1, max (u_3 + 1) (u_4 + 1)}\n            (Prod.{max u_3 u_4, max u_3 u_4}\n              ((i : ↥s) →\n                α\n                  (@Subtype.val.{u_4 + 1} ι\n                    (fun x =>\n                      @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                        (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n                    i))\n              ((i : ↥t) →\n                α\n                  (@Subtype.val.{u_4 + 1} ι\n                    (fun x =>\n                      @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                        (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n                    i)))\n            ((i : ↥(@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t)) →\n              α\n                (@Subtype.val.{u_4 + 1} ι\n                  (fun x =>\n                    @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                      (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n                      (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n                  i))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-9ee6db5f467cfc8d1a8a77b441820d04e403380dd8c2341b90cade2253b1cb26","qualified_name":"Equiv.piFinsetUnion_left","statement":"∀ {ι : Type u_4} [inst : DecidableEq.{u_4 + 1} ι] (α : ι → Type u_3) {s t : Finset.{u_4} ι}\n  (h : @Disjoint.{u_4} (Finset.{u_4} ι) (@Finset.instPartialOrder.{u_4} ι) (@Finset.instOrderBot.{u_4} ι) s t)\n  {f :\n    (i : ↥s) →\n      α\n        (@Subtype.val.{u_4 + 1} ι\n          (fun x =>\n            @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n              (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n          i)}\n  {g :\n    (i : ↥t) →\n      α\n        (@Subtype.val.{u_4 + 1} ι\n          (fun x =>\n            @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n              (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n          i)}\n  {i : ι}\n  (hi :\n    @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n      (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s i)\n  (hi' :\n    @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n      (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n      (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) i),\n  @Eq.{u_3 + 1}\n    (α\n      (@Subtype.val.{u_4 + 1} ι\n        (fun x =>\n          @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n            (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n            (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n        (@Subtype.mk.{u_4 + 1} ι\n          (fun x =>\n            @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n              (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n              (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n          i hi')))\n    (@DFunLike.coe.{max (u_3 + 1) (u_4 + 1), max (u_3 + 1) (u_4 + 1), max (u_3 + 1) (u_4 + 1)}\n      (Equiv.{(max u_3 u_4) + 1, max (u_3 + 1) (u_4 + 1)}\n        (Prod.{max u_3 u_4, max u_3 u_4}\n          ((i : ↥s) →\n            α\n              (@Subtype.val.{u_4 + 1} ι\n                (fun x =>\n                  @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                    (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n                i))\n          ((i : ↥t) →\n            α\n              (@Subtype.val.{u_4 + 1} ι\n                (fun x =>\n                  @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                    (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n                i)))\n        ((i : ↥(@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t)) →\n          α\n            (@Subtype.val.{u_4 + 1} ι\n              (fun x =>\n                @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                  (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n                  (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n              i)))\n      (Prod.{max u_3 u_4, max u_3 u_4}\n        ((i : ↥s) →\n          α\n            (@Subtype.val.{u_4 + 1} ι\n              (fun x =>\n                @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                  (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n              i))\n        ((i : ↥t) →\n          α\n            (@Subtype.val.{u_4 + 1} ι\n              (fun x =>\n                @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                  (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n              i)))\n      (fun x =>\n        (i : ↥(@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t)) →\n          α\n            (@Subtype.val.{u_4 + 1} ι\n              (fun x =>\n                @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                  (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n                  (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n              i))\n      (@EquivLike.toFunLike.{max (u_3 + 1) (u_4 + 1), max (u_3 + 1) (u_4 + 1), max (u_3 + 1) (u_4 + 1)}\n        (Equiv.{(max u_3 u_4) + 1, max (u_3 + 1) (u_4 + 1)}\n          (Prod.{max u_3 u_4, max u_3 u_4}\n            ((i : ↥s) →\n              α\n                (@Subtype.val.{u_4 + 1} ι\n                  (fun x =>\n                    @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                      (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n                  i))\n            ((i : ↥t) →\n              α\n                (@Subtype.val.{u_4 + 1} ι\n                  (fun x =>\n                    @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                      (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n                  i)))\n          ((i : ↥(@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t)) →\n            α\n              (@Subtype.val.{u_4 + 1} ι\n                (fun x =>\n                  @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                    (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n                    (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n                i)))\n        (Prod.{max u_3 u_4, max u_3 u_4}\n          ((i : ↥s) →\n            α\n              (@Subtype.val.{u_4 + 1} ι\n                (fun x =>\n                  @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                    (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n                i))\n          ((i : ↥t) →\n            α\n              (@Subtype.val.{u_4 + 1} ι\n                (fun x =>\n                  @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                    (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n                i)))\n        ((i : ↥(@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t)) →\n          α\n            (@Subtype.val.{u_4 + 1} ι\n              (fun x =>\n                @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                  (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n                  (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n              i))\n        (@Equiv.instEquivLike.{max (u_3 + 1) (u_4 + 1), max (u_3 + 1) (u_4 + 1)}\n          (Prod.{max u_3 u_4, max u_3 u_4}\n            ((i : ↥s) →\n              α\n                (@Subtype.val.{u_4 + 1} ι\n                  (fun x =>\n                    @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                      (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n                  i))\n            ((i : ↥t) →\n              α\n                (@Subtype.val.{u_4 + 1} ι\n                  (fun x =>\n                    @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                      (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n                  i)))\n          ((i : ↥(@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t)) →\n            α\n              (@Subtype.val.{u_4 + 1} ι\n                (fun x =>\n                  @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                    (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n                    (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n                i))))\n      (@Equiv.piFinsetUnion.{u_3, u_4} ι inst α s t h)\n      (@Prod.mk.{max u_3 u_4, max u_3 u_4}\n        ((i : ↥s) →\n          α\n            (@Subtype.val.{u_4 + 1} ι\n              (fun x =>\n                @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                  (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n              i))\n        ((i : ↥t) →\n          α\n            (@Subtype.val.{u_4 + 1} ι\n              (fun x =>\n                @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                  (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n              i))\n        f g)\n      (@Subtype.mk.{u_4 + 1} ι\n        (fun x =>\n          @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n            (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n            (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n        i hi'))\n    (f\n      (@Subtype.mk.{u_4 + 1} ι\n        (fun x =>\n          @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n            (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n        i hi))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-fc335c7feddcbde8cdce3627eb9f22e4151387449124df6678805ab04f03cbfb","qualified_name":"Equiv.piFinsetUnion_right","statement":"∀ {ι : Type u_4} [inst : DecidableEq.{u_4 + 1} ι] (α : ι → Type u_3) {s t : Finset.{u_4} ι}\n  (h : @Disjoint.{u_4} (Finset.{u_4} ι) (@Finset.instPartialOrder.{u_4} ι) (@Finset.instOrderBot.{u_4} ι) s t)\n  {f :\n    (i : ↥s) →\n      α\n        (@Subtype.val.{u_4 + 1} ι\n          (fun x =>\n            @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n              (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n          i)}\n  {g :\n    (i : ↥t) →\n      α\n        (@Subtype.val.{u_4 + 1} ι\n          (fun x =>\n            @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n              (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n          i)}\n  {i : ι}\n  (hi :\n    @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n      (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t i)\n  (hi' :\n    @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n      (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n      (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) i),\n  @Eq.{u_3 + 1}\n    (α\n      (@Subtype.val.{u_4 + 1} ι\n        (fun x =>\n          @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n            (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n            (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n        (@Subtype.mk.{u_4 + 1} ι\n          (fun x =>\n            @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n              (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n              (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n          i hi')))\n    (@DFunLike.coe.{max (u_3 + 1) (u_4 + 1), max (u_3 + 1) (u_4 + 1), max (u_3 + 1) (u_4 + 1)}\n      (Equiv.{(max u_3 u_4) + 1, max (u_3 + 1) (u_4 + 1)}\n        (Prod.{max u_3 u_4, max u_3 u_4}\n          ((i : ↥s) →\n            α\n              (@Subtype.val.{u_4 + 1} ι\n                (fun x =>\n                  @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                    (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n                i))\n          ((i : ↥t) →\n            α\n              (@Subtype.val.{u_4 + 1} ι\n                (fun x =>\n                  @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                    (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n                i)))\n        ((i : ↥(@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t)) →\n          α\n            (@Subtype.val.{u_4 + 1} ι\n              (fun x =>\n                @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                  (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n                  (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n              i)))\n      (Prod.{max u_3 u_4, max u_3 u_4}\n        ((i : ↥s) →\n          α\n            (@Subtype.val.{u_4 + 1} ι\n              (fun x =>\n                @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                  (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n              i))\n        ((i : ↥t) →\n          α\n            (@Subtype.val.{u_4 + 1} ι\n              (fun x =>\n                @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                  (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n              i)))\n      (fun x =>\n        (i : ↥(@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t)) →\n          α\n            (@Subtype.val.{u_4 + 1} ι\n              (fun x =>\n                @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                  (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n                  (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n              i))\n      (@EquivLike.toFunLike.{max (u_3 + 1) (u_4 + 1), max (u_3 + 1) (u_4 + 1), max (u_3 + 1) (u_4 + 1)}\n        (Equiv.{(max u_3 u_4) + 1, max (u_3 + 1) (u_4 + 1)}\n          (Prod.{max u_3 u_4, max u_3 u_4}\n            ((i : ↥s) →\n              α\n                (@Subtype.val.{u_4 + 1} ι\n                  (fun x =>\n                    @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                      (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n                  i))\n            ((i : ↥t) →\n              α\n                (@Subtype.val.{u_4 + 1} ι\n                  (fun x =>\n                    @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                      (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n                  i)))\n          ((i : ↥(@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t)) →\n            α\n              (@Subtype.val.{u_4 + 1} ι\n                (fun x =>\n                  @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                    (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n                    (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n                i)))\n        (Prod.{max u_3 u_4, max u_3 u_4}\n          ((i : ↥s) →\n            α\n              (@Subtype.val.{u_4 + 1} ι\n                (fun x =>\n                  @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                    (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n                i))\n          ((i : ↥t) →\n            α\n              (@Subtype.val.{u_4 + 1} ι\n                (fun x =>\n                  @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                    (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n                i)))\n        ((i : ↥(@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t)) →\n          α\n            (@Subtype.val.{u_4 + 1} ι\n              (fun x =>\n                @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                  (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n                  (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n              i))\n        (@Equiv.instEquivLike.{max (u_3 + 1) (u_4 + 1), max (u_3 + 1) (u_4 + 1)}\n          (Prod.{max u_3 u_4, max u_3 u_4}\n            ((i : ↥s) →\n              α\n                (@Subtype.val.{u_4 + 1} ι\n                  (fun x =>\n                    @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                      (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n                  i))\n            ((i : ↥t) →\n              α\n                (@Subtype.val.{u_4 + 1} ι\n                  (fun x =>\n                    @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                      (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n                  i)))\n          ((i : ↥(@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t)) →\n            α\n              (@Subtype.val.{u_4 + 1} ι\n                (fun x =>\n                  @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                    (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n                    (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n                i))))\n      (@Equiv.piFinsetUnion.{u_3, u_4} ι inst α s t h)\n      (@Prod.mk.{max u_3 u_4, max u_3 u_4}\n        ((i : ↥s) →\n          α\n            (@Subtype.val.{u_4 + 1} ι\n              (fun x =>\n                @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                  (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) s x)\n              i))\n        ((i : ↥t) →\n          α\n            (@Subtype.val.{u_4 + 1} ι\n              (fun x =>\n                @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n                  (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n              i))\n        f g)\n      (@Subtype.mk.{u_4 + 1} ι\n        (fun x =>\n          @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n            (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι))\n            (@Union.union.{u_4} (Finset.{u_4} ι) (@Finset.instUnion.{u_4} ι inst) s t) x)\n        i hi'))\n    (g\n      (@Subtype.mk.{u_4 + 1} ι\n        (fun x =>\n          @Membership.mem.{u_4, u_4} ι (Finset.{u_4} ι)\n            (@SetLike.instMembership.{u_4, u_4} (Finset.{u_4} ι) ι (@Finset.instSetLike.{u_4} ι)) t x)\n        i hi))"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-60e916d8bfbc154e921847c89dca6bf41a4560ef5eb4651be6820847e50a9b4f","qualified_name":"Equiv.setSubtypeComm","statement":"{α : Type u_1} →\n  (p : α → Prop) →\n    Equiv.{u_1 + 1, max 1 (u_1 + 1)} (Set.{u_1} (@Subtype.{u_1 + 1} α fun a => p a))\n      (@Subtype.{u_1 + 1} (Set.{u_1} α) fun s =>\n        ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-a43aa2e84c9a1340e5c77f1aac4db701cd48aaf686405caba45bffcd6fcbb612","qualified_name":"Equiv.setSubtypeComm_apply","statement":"∀ {α : Type u_1} (p : α → Prop) (s : Set.{u_1} (@Subtype.{u_1 + 1} α fun a => p a)),\n  @Eq.{u_1 + 1}\n    (@Subtype.{u_1 + 1} (Set.{u_1} α) fun s =>\n      ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a)\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (Equiv.{u_1 + 1, u_1 + 1} (Set.{u_1} (@Subtype.{u_1 + 1} α fun a => p a))\n        (@Subtype.{u_1 + 1} (Set.{u_1} α) fun s =>\n          ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a))\n      (Set.{u_1} (@Subtype.{u_1 + 1} α fun a => p a))\n      (fun x =>\n        @Subtype.{u_1 + 1} (Set.{u_1} α) fun s =>\n          ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a)\n      (@EquivLike.toFunLike.{u_1 + 1, u_1 + 1, u_1 + 1}\n        (Equiv.{u_1 + 1, u_1 + 1} (Set.{u_1} (@Subtype.{u_1 + 1} α fun a => p a))\n          (@Subtype.{u_1 + 1} (Set.{u_1} α) fun s =>\n            ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a))\n        (Set.{u_1} (@Subtype.{u_1 + 1} α fun a => p a))\n        (@Subtype.{u_1 + 1} (Set.{u_1} α) fun s =>\n          ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a)\n        (@Equiv.instEquivLike.{u_1 + 1, u_1 + 1} (Set.{u_1} (@Subtype.{u_1 + 1} α fun a => p a))\n          (@Subtype.{u_1 + 1} (Set.{u_1} α) fun s =>\n            ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a)))\n      (@Equiv.setSubtypeComm.{u_1} α p) s)\n    (@Subtype.mk.{u_1 + 1} (Set.{u_1} α)\n      (fun s => ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a)\n      (@Set.ofPred.{u_1} α fun a =>\n        ∃ (h : p a),\n          @Membership.mem.{u_1, u_1} (@Subtype.{u_1 + 1} α fun a => p a) (Set.{u_1} (@Subtype.{u_1 + 1} α fun a => p a))\n            (@Set.instMembership.{u_1} (@Subtype.{u_1 + 1} α fun a => p a)) s\n            (@Subtype.mk.{u_1 + 1} α (fun a => p a) a h))\n      ⋯)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-e25b907b44f020384015442297580511f80acfa45b24d183992a74bc65e6943d","qualified_name":"Equiv.setSubtypeComm_symm_apply","statement":"∀ {α : Type u_1} (p : α → Prop)\n  (s :\n    @Subtype.{u_1 + 1} (Set.{u_1} α) fun s =>\n      ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a),\n  @Eq.{u_1 + 1} (Set.{u_1} (@Subtype.{u_1 + 1} α fun a => p a))\n    (@DFunLike.coe.{u_1 + 1, u_1 + 1, u_1 + 1}\n      (Equiv.{u_1 + 1, u_1 + 1}\n        (@Subtype.{u_1 + 1} (Set.{u_1} α) fun s =>\n          ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a)\n        (Set.{u_1} (@Subtype.{u_1 + 1} α fun a => p a)))\n      (@Subtype.{u_1 + 1} (Set.{u_1} α) fun s =>\n        ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a)\n      (fun x => Set.{u_1} (@Subtype.{u_1 + 1} α fun a => p a))\n      (@EquivLike.toFunLike.{u_1 + 1, u_1 + 1, u_1 + 1}\n        (Equiv.{u_1 + 1, u_1 + 1}\n          (@Subtype.{u_1 + 1} (Set.{u_1} α) fun s =>\n            ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a)\n          (Set.{u_1} (@Subtype.{u_1 + 1} α fun a => p a)))\n        (@Subtype.{u_1 + 1} (Set.{u_1} α) fun s =>\n          ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a)\n        (Set.{u_1} (@Subtype.{u_1 + 1} α fun a => p a))\n        (@Equiv.instEquivLike.{u_1 + 1, u_1 + 1}\n          (@Subtype.{u_1 + 1} (Set.{u_1} α) fun s =>\n            ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a)\n          (Set.{u_1} (@Subtype.{u_1 + 1} α fun a => p a))))\n      (@Equiv.symm.{u_1 + 1, u_1 + 1} (Set.{u_1} (@Subtype.{u_1 + 1} α fun a => p a))\n        (@Subtype.{u_1 + 1} (Set.{u_1} α) fun s =>\n          ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a)\n        (@Equiv.setSubtypeComm.{u_1} α p))\n      s)\n    (@Set.ofPred.{u_1} (@Subtype.{u_1 + 1} α fun a => p a) fun a =>\n      @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α)\n        (@Subtype.val.{u_1 + 1} (Set.{u_1} α)\n          (fun s => ∀ (a : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s a → p a) s)\n        (@Subtype.val.{u_1 + 1} α (fun a => p a) a))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-f558b8b873247ff2314f39f1d8be4290df8eeac54b3f7303ed838902e302b895","qualified_name":"Finset.Nonempty.attach","statement":"∀ {α : Type u_1} {s : Finset.{u_1} α},\n  @Finset.Nonempty.{u_1} α s → @Finset.Nonempty.{u_1} (↥s) (@Finset.attach.{u_1} α s)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-c7334045781378a30cac92e836f712e11c98f80d43fe96fad252d65aec1c57ec","qualified_name":"Finset.Nonempty.not_disjoint","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α},\n  @Finset.Nonempty.{u_1} α (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst) s t) →\n    Not (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-5714cfaef9c3f71cd2deb872e1927c31215fbf89e0115299a7dc26e3448ce97e","qualified_name":"Finset.Nonempty.not_empty_toList","statement":"∀ {α : Type u_1} {s : Finset.{u_1} α},\n  @Finset.Nonempty.{u_1} α s → Not (@Eq.{1} Bool (@List.isEmpty.{u_1} α (@Finset.toList.{u_1} α s)) Bool.true)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-16245bde00535b357147bdafab75e59c3b943b9a4aca3904c51bf197437c3b93","qualified_name":"Finset.Nonempty.toList_ne_nil","statement":"∀ {α : Type u_1} {s : Finset.{u_1} α},\n  @Finset.Nonempty.{u_1} α s → @Ne.{u_1 + 1} (List.{u_1} α) (@Finset.toList.{u_1} α s) (@List.nil.{u_1} α)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-9aac4db119af9adc6517f7e3619afe7be80e1282b17f8b6a580c8e9ce5b10fe1","qualified_name":"Finset.Nontrivial.erase_nonempty","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s : Finset.{u_1} α} {a : α},\n  @Finset.Nontrivial.{u_1} α s → @Finset.Nonempty.{u_1} α (@Finset.erase.{u_1} α inst s a)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-0043f186461afcd86a86c8c9e2050f0fdf091680ef90c26a6422145107adda98","qualified_name":"Finset.Nontrivial.exists_cons_eq","statement":"∀ {α : Type u_1} {s : Finset.{u_1} α},\n  @Finset.Nontrivial.{u_1} α s →\n    ∃ t a,\n      ∃ (ha : a ∉ t),\n        ∃ b,\n          ∃ (hb : b ∉ t) (hab : Not (@Eq.{u_1 + 1} α a b)),\n            @Eq.{u_1 + 1} (Finset.{u_1} α) (@Finset.cons.{u_1} α a (@Finset.cons.{u_1} α b t hb) ⋯) s"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-12f48084bcabd65866a9b6c7ab552d07337e20abd9d89c3a21fe9d1b1d0e71a8","qualified_name":"Finset.attach_empty","statement":"∀ {α : Type u_1},\n  @Eq.{u_1 + 1}\n    (Finset.{u_1} ↥(@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α)))\n    (@Finset.attach.{u_1} α\n      (@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α)))\n    (@EmptyCollection.emptyCollection.{u_1}\n      (Finset.{u_1} ↥(@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α)))\n      (@Finset.instEmptyCollection.{u_1}\n        ↥(@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α))))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-4c9a3470eac1cca6a14e32e1cc60fe3a499bd7daa96346b92eff40a8737a1904","qualified_name":"Finset.attach_eq_empty_iff","statement":"∀ {α : Type u_1} {s : Finset.{u_1} α},\n  Iff\n    (@Eq.{u_1 + 1} (Finset.{u_1} ↥s) (@Finset.attach.{u_1} α s)\n      (@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} ↥s) (@Finset.instEmptyCollection.{u_1} ↥s)))\n    (@Eq.{u_1 + 1} (Finset.{u_1} α) s\n      (@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α)))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-3ecb38a3a0fdcb9fdcc028eafcdf0c38cf1c5c7b863aa87e54a9736868017e77","qualified_name":"Finset.attach_nonempty_iff","statement":"∀ {α : Type u_1} {s : Finset.{u_1} α},\n  Iff (@Finset.Nonempty.{u_1} (↥s) (@Finset.attach.{u_1} α s)) (@Finset.Nonempty.{u_1} α s)"},{"kind":"definition","module":"Mathlib.Data.Finset.Basic","object_id":"object-b3c548da204c5d3e194a4904472b5c8a9b81ed7abcf057e97ecfffe95d9a6952","qualified_name":"Finset.choose","statement":"{α : Type u_1} →\n  (p : α → Prop) →\n    [@DecidablePred.{u_1 + 1} α p] →\n      (l : Finset.{u_1} α) →\n        (@ExistsUnique.{u_1 + 1} α fun a =>\n            And\n              (@Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n                (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) l a)\n              (p a)) →\n          α"},{"kind":"definition","module":"Mathlib.Data.Finset.Basic","object_id":"object-26c90d022387e31ba33a9feae9cb8c266f8775c29b0f30f0c41d079a47f68c35","qualified_name":"Finset.chooseX","statement":"{α : Type u_1} →\n  (p : α → Prop) →\n    [@DecidablePred.{u_1 + 1} α p] →\n      (l : Finset.{u_1} α) →\n        (@ExistsUnique.{u_1 + 1} α fun a =>\n            And\n              (@Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n                (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) l a)\n              (p a)) →\n          @Subtype.{u_1 + 1} α fun a =>\n            And\n              (@Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n                (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) l a)\n              (p a)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-3edf8adc74054fa085eb8853bead4f182f289c4fb08036ca159267a77bf6cdbb","qualified_name":"Finset.choose_eq_iff","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] (l : Finset.{u_1} α)\n  (hp :\n    @ExistsUnique.{u_1 + 1} α fun a =>\n      And\n        (@Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n          (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) l a)\n        (p a))\n  {a : α},\n  Iff (@Eq.{u_1 + 1} α (@Finset.choose.{u_1} α p inst l hp) a)\n    (And\n      (@Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n        (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) l a)\n      (p a))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-914bf2812a326f0d7b2c97ddb851514329f293782e095d86321f4cd49efeda5f","qualified_name":"Finset.choose_mem","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] (l : Finset.{u_1} α)\n  (hp :\n    @ExistsUnique.{u_1 + 1} α fun a =>\n      And\n        (@Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n          (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) l a)\n        (p a)),\n  @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n    (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) l\n    (@Finset.choose.{u_1} α p inst l hp)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-465fc66b05e6a73b7dc31bcb3f2f7dbd568264563bd5b76b082b75c495eb8344","qualified_name":"Finset.choose_property","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] (l : Finset.{u_1} α)\n  (hp :\n    @ExistsUnique.{u_1 + 1} α fun a =>\n      And\n        (@Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n          (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) l a)\n        (p a)),\n  p (@Finset.choose.{u_1} α p inst l hp)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-1be1ee31a0298e1d28c644dd3650c1acc02a6bf5d6c76fd434b40d20a66f6783","qualified_name":"Finset.choose_spec","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] (l : Finset.{u_1} α)\n  (hp :\n    @ExistsUnique.{u_1 + 1} α fun a =>\n      And\n        (@Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n          (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) l a)\n        (p a)),\n  And\n    (@Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) l\n      (@Finset.choose.{u_1} α p inst l hp))\n    (p (@Finset.choose.{u_1} α p inst l hp))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-a7d06ba598b8ebeed2fbb4ea46ac98e98b7874b10f583489a4ca872a65b20942","qualified_name":"Finset.disjUnion_eq_union","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s t : Finset.{u_1} α)\n  (h : @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t),\n  @Eq.{u_1 + 1} (Finset.{u_1} α) (@Finset.disjUnion.{u_1} α s t h)\n    (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-b59c142f14547a24e913145c20217bfa3421e000b883057585c3a34a9acaabe5","qualified_name":"Finset.disjoint_disjUnion_left","statement":"∀ {α : Type u_1} {s t u : Finset.{u_1} α}\n  (h : @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t),\n  Iff\n    (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α)\n      (@Finset.disjUnion.{u_1} α s t h) u)\n    (And (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s u)\n      (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) t u))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-364e3ebf9d0c8bfdca7cbb96b39777ffa675d7353c52ed39d40d0b42b0c7c009","qualified_name":"Finset.disjoint_disjUnion_right","statement":"∀ {α : Type u_1} {s t u : Finset.{u_1} α}\n  (h : @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) t u),\n  Iff\n    (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s\n      (@Finset.disjUnion.{u_1} α t u h))\n    (And (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t)\n      (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s u))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-3b250d2182c4dd7307633f1a94aa54fa0233f97ca1bb177d39b10f948327066b","qualified_name":"Finset.disjoint_erase_comm","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α} {a : α},\n  Iff\n    (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α)\n      (@Finset.erase.{u_1} α inst s a) t)\n    (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s\n      (@Finset.erase.{u_1} α inst t a))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-4931761fb71ae2735d97e0386127b6f2cf9e98e8bafb209484c35ebedf5a95c5","qualified_name":"Finset.disjoint_erase_insert","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α} {a : α},\n  a ∉ s →\n    Iff\n      (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α)\n        (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a s)\n        (@Finset.erase.{u_1} α inst t a))\n      (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-9f69918d1da74e543cb142ed42c7150b7ea703232544c65ab99407f3165dbc2e","qualified_name":"Finset.disjoint_filter","statement":"∀ {α : Type u_1} {s : Finset.{u_1} α} {p q : α → Prop} [inst : @DecidablePred.{u_1 + 1} α p]\n  [inst_1 : @DecidablePred.{u_1 + 1} α q],\n  Iff\n    (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α)\n      (@Finset.filter.{u_1} α p inst s) (@Finset.filter.{u_1} α q inst_1 s))\n    (∀ (x : α),\n      @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n          (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s x →\n        p x → Not (q x))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-94ee2d73c0fc1ab7b6085e3b91fc51f64728eec92902f17222f0d76381c80089","qualified_name":"Finset.disjoint_filter_filter'","statement":"∀ {α : Type u_1} (s t : Finset.{u_1} α) {p q : α → Prop} [inst : @DecidablePred.{u_1 + 1} α p]\n  [inst_1 : @DecidablePred.{u_1 + 1} α q],\n  @Disjoint.{u_1} (α → Prop) (@Pi.partialOrder.{u_1, 0} α (fun a => Prop) fun i => «Prop».partialOrder)\n      (@Pi.instOrderBot.{u_1, 0} α (fun a => Prop) (fun i => «Prop».le) fun i =>\n        @HeytingAlgebra.toOrderBot.{0} Prop «Prop».instHeytingAlgebra)\n      p q →\n    @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α)\n      (@Finset.filter.{u_1} α p inst s) (@Finset.filter.{u_1} α q inst_1 t)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-2cf779b1055a8e489fda57eeed4505a7db2eaef82736a7b83d2c3356588722cb","qualified_name":"Finset.disjoint_filter_filter_not","statement":"∀ {α : Type u_1} (s t : Finset.{u_1} α) (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p]\n  [inst_1 : (x : α) → Decidable (Not (p x))],\n  @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α)\n    (@Finset.filter.{u_1} α p inst s) ({a ∈ t | Not (p a)})"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-a9329a24cf4ab9aa15109e1c8115ffba608e3fd5165df755f74b2436619951af","qualified_name":"Finset.disjoint_insert_erase","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α} {a : α},\n  a ∉ t →\n    Iff\n      (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α)\n        (@Finset.erase.{u_1} α inst s a)\n        (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a t))\n      (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-a8717fe78206ba80751e03cfa442091123165dedfaaf35eaa522fbbfa0761a28","qualified_name":"Finset.disjoint_of_erase_left","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α} {a : α},\n  a ∉ t →\n    @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α)\n        (@Finset.erase.{u_1} α inst s a) t →\n      @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-3d5fbace186279bdcd6df96c2fab1ef6031a4edd9d6c8115f84fde1b097c71a7","qualified_name":"Finset.disjoint_of_erase_right","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α} {a : α},\n  a ∉ s →\n    @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s\n        (@Finset.erase.{u_1} α inst t a) →\n      @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-cdb5d1e8a50ba1cf2a965b982dba1cfff4b1218df7a662f4ba1f1dcf3e0bd8b0","qualified_name":"Finset.disjoint_of_subset_iff_left_eq_empty","statement":"∀ {α : Type u_1} {s t : Finset.{u_1} α},\n  @LE.le.{u_1} (Finset.{u_1} α)\n      (@Preorder.toLE.{u_1} (Finset.{u_1} α)\n        (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))\n      s t →\n    Iff (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t)\n      (@Eq.{u_1 + 1} (Finset.{u_1} α) s\n        (@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α)))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-781c122396e2924ac078bfa478daf2d2976b4540bd6f208910718f47ac7907b2","qualified_name":"Finset.disjoint_or_nonempty_inter","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s t : Finset.{u_1} α),\n  Or (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t)\n    (@Finset.Nonempty.{u_1} α (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst) s t))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-1860f11d443b70cba0682868d574d8d37983a8a14ab8171003a4e7bcb822b47e","qualified_name":"Finset.disjoint_sdiff","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α},\n  @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s\n    (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) t s)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-098ee0fd74e0124fd4525f5c553bdc5f8b5e72c6198a7511bf537dba019c9ed5","qualified_name":"Finset.disjoint_sdiff_inter","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s t : Finset.{u_1} α),\n  @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α)\n    (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) s t)\n    (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst) s t)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-709ad6ae3079b595bcadf911d484fc887024db680b3c49f6b26ccdbcc4f22a2f","qualified_name":"Finset.disjoint_union_left","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t u : Finset.{u_1} α},\n  Iff\n    (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α)\n      (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t) u)\n    (And (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s u)\n      (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) t u))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-9672773524870b11488d77eb03e699d890671784e2cc1332fa410a9f1ea7b116","qualified_name":"Finset.disjoint_union_right","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t u : Finset.{u_1} α},\n  Iff\n    (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s\n      (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) t u))\n    (And (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t)\n      (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s u))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-2ad9f32018b0e2bab1224ff9b23ea451fcf0b77d5120c792f9c2a7db15af217a","qualified_name":"Finset.empty_toList","statement":"∀ {α : Type u_1} {s : Finset.{u_1} α},\n  Iff (@Eq.{1} Bool (@List.isEmpty.{u_1} α (@Finset.toList.{u_1} α s)) Bool.true)\n    (@Eq.{u_1 + 1} (Finset.{u_1} α) s\n      (@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α)))"},{"kind":"definition","module":"Mathlib.Data.Finset.Basic","object_id":"object-1a68349e9baeb0c3de2e7882ad708d5cfb33dfd9cab22c0bd858d034ac740da0","qualified_name":"Finset.equivToSet","statement":"{α : Type u_1} →\n  (s : Finset.{u_1} α) →\n    Equiv.{u_1 + 1, u_1 + 1} (↥s)\n      (@Set.Elem.{u_1} α (@SetLike.coe.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α) s))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-346f0e109e214a1895bf5e5dba8469ce4c13b16d3021078fa33b4c90dc433433","qualified_name":"Finset.erase_cons","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s : Finset.{u_1} α} {a : α} (h : a ∉ s),\n  @Eq.{u_1 + 1} (Finset.{u_1} α) (@Finset.erase.{u_1} α inst (@Finset.cons.{u_1} α a s h) a) s"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-62b9e985a7799d28befb0a5fcc764061dd4620055eef8d09e6aac07a2df95a48","qualified_name":"Finset.erase_cons_of_ne","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {a b : α} {s : Finset.{u_1} α} (ha : a ∉ s),\n  @Ne.{u_1 + 1} α a b →\n    @Eq.{u_1 + 1} (Finset.{u_1} α) (@Finset.erase.{u_1} α inst (@Finset.cons.{u_1} α a s ha) b)\n      (@Finset.cons.{u_1} α a (@Finset.erase.{u_1} α inst s b) ⋯)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-4e72c3bd65c1df8eb143a71f2bcc505c662a683e6a7de2fa977202085bc421d0","qualified_name":"Finset.erase_empty","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (a : α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Finset.erase.{u_1} α inst\n      (@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α)) a)\n    (@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-2bafa45be929537cc262e04ad8788fb6b723201d87ed969fdd528b76f5fafa74","qualified_name":"Finset.erase_eq","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s : Finset.{u_1} α) (a : α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α) (@Finset.erase.{u_1} α inst s a)\n    (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) s\n      (@Singleton.singleton.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instSingleton.{u_1} α) a))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-439a3a6fe03ab83a1ef6a3a35633aad4545919a475591bcd47a57e26f0502d00","qualified_name":"Finset.erase_eq_empty_iff","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s : Finset.{u_1} α) (a : α),\n  Iff\n    (@Eq.{u_1 + 1} (Finset.{u_1} α) (@Finset.erase.{u_1} α inst s a)\n      (@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α)))\n    (Or\n      (@Eq.{u_1 + 1} (Finset.{u_1} α) s\n        (@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α)))\n      (@Eq.{u_1 + 1} (Finset.{u_1} α) s\n        (@Singleton.singleton.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instSingleton.{u_1} α) a)))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-ecc05a6aedf34f6f70031ccf14b7faf591a95892dde40de327c84c6df46de25a","qualified_name":"Finset.erase_eq_iff_eq_insert","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α} {a : α},\n  @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s a →\n    a ∉ t →\n      Iff (@Eq.{u_1 + 1} (Finset.{u_1} α) (@Finset.erase.{u_1} α inst s a) t)\n        (@Eq.{u_1 + 1} (Finset.{u_1} α) s\n          (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a t))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-45ee7c01c4366fb51089de23bee8dd8ac82ca00e3a342346bbd28f04baa6d4c4","qualified_name":"Finset.erase_injOn'","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (a : α),\n  @Set.InjOn.{u_1, u_1} (Finset.{u_1} α) (Finset.{u_1} α) (fun s => @Finset.erase.{u_1} α inst s a)\n    (@Set.ofPred.{u_1} (Finset.{u_1} α) fun s =>\n      @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n        (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s a)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-eaa3502db3a1a7f40f90cf07ac0a671d778529b58535de8b4b4fbff20629864a","qualified_name":"Finset.erase_insert","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {a : α} {s : Finset.{u_1} α},\n  a ∉ s →\n    @Eq.{u_1 + 1} (Finset.{u_1} α)\n      (@Finset.erase.{u_1} α inst (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a s)\n        a)\n      s"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-3ab7b8f2f1cbfb9ae5cc424b04154dbc937d0bfe74595f96e31d02b9ba6c6010","qualified_name":"Finset.erase_insert_eq_erase","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s : Finset.{u_1} α) (a : α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Finset.erase.{u_1} α inst (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a s) a)\n    (@Finset.erase.{u_1} α inst s a)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-f56ef70659d23748dede7fbd531dd754ed318b138866eb34d5a029e2035cc5cd","qualified_name":"Finset.erase_insert_of_ne","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {a b : α} {s : Finset.{u_1} α},\n  @Ne.{u_1 + 1} α a b →\n    @Eq.{u_1 + 1} (Finset.{u_1} α)\n      (@Finset.erase.{u_1} α inst (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a s)\n        b)\n      (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a\n        (@Finset.erase.{u_1} α inst s b))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-c7193108654593e79b1642f6b294c52620f5865ee71f61fd4df29a2a45d74ffa","qualified_name":"Finset.erase_insert_subset","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (a : α) (s : Finset.{u_1} α),\n  @LE.le.{u_1} (Finset.{u_1} α)\n    (@Preorder.toLE.{u_1} (Finset.{u_1} α)\n      (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))\n    (@Finset.erase.{u_1} α inst (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a s) a)\n    s"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-8e0f5bf8e4203286d8ad975a8597731f9b4860b9e1263afe8db4afb04437f7d1","qualified_name":"Finset.erase_inter","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (a : α) (s t : Finset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst) (@Finset.erase.{u_1} α inst s a) t)\n    (@Finset.erase.{u_1} α inst (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst) s t) a)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-59d35fe374e6ba5e494756feb42850fcca72b75e6496a3d4fbbfc313946489d6","qualified_name":"Finset.erase_inter_comm","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s t : Finset.{u_1} α) (a : α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst) (@Finset.erase.{u_1} α inst s a) t)\n    (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst) s (@Finset.erase.{u_1} α inst t a))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-4999a420522d4f57280c972363f1b2397fdff6650069e5cc98d095e33a1a99b1","qualified_name":"Finset.erase_nonempty","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s : Finset.{u_1} α} {a : α},\n  @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s a →\n    Iff (@Finset.Nonempty.{u_1} α (@Finset.erase.{u_1} α inst s a)) (@Finset.Nontrivial.{u_1} α s)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-e2db1d3f45b82be84f1f783ba1b599aebc05ba7836513d97e8cc406e84eec00f","qualified_name":"Finset.erase_sdiff_comm","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s t : Finset.{u_1} α) (a : α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) (@Finset.erase.{u_1} α inst s a) t)\n    (@Finset.erase.{u_1} α inst (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) s t) a)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-304f4297a314f337c2c45d6d8c75c7ac0d7d14cff1cb88038bab61812ae093ea","qualified_name":"Finset.erase_sdiff_distrib","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s t : Finset.{u_1} α) (a : α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Finset.erase.{u_1} α inst (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) s t) a)\n    (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) (@Finset.erase.{u_1} α inst s a)\n      (@Finset.erase.{u_1} α inst t a))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-bedbf7c3b5fb79072b1058ca443ca5f49eb2892b5bf4375e0a6f745c0ebadcfa","qualified_name":"Finset.erase_sdiff_erase","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s : Finset.{u_1} α} {a b : α},\n  @Ne.{u_1 + 1} α a b →\n    @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n        (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s b →\n      @Eq.{u_1 + 1} (Finset.{u_1} α)\n        (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) (@Finset.erase.{u_1} α inst s a)\n          (@Finset.erase.{u_1} α inst s b))\n        (@Singleton.singleton.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instSingleton.{u_1} α) b)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-576c647463bdafe069b4f94b3980baeef6782f533fef500aa7808035dea20e9a","qualified_name":"Finset.erase_singleton","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (a : α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Finset.erase.{u_1} α inst (@Singleton.singleton.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instSingleton.{u_1} α) a)\n      a)\n    (@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-c5447bb670f99755bc7a19dc6573f603cfa140dd78cfd11e369f7e52d4069d5b","qualified_name":"Finset.erase_ssubset","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {a : α} {s : Finset.{u_1} α},\n  @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s a →\n    @LT.lt.{u_1} (Finset.{u_1} α)\n      (@Preorder.toLT.{u_1} (Finset.{u_1} α)\n        (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))\n      (@Finset.erase.{u_1} α inst s a) s"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-c9f5c2c711b19aa32651ec0824fb30091111fcf85345ba1d76a133eaf2f3c6a7","qualified_name":"Finset.erase_ssubset_insert","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s : Finset.{u_1} α) (a : α),\n  @LT.lt.{u_1} (Finset.{u_1} α)\n    (@Preorder.toLT.{u_1} (Finset.{u_1} α)\n      (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))\n    (@Finset.erase.{u_1} α inst s a)\n    (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a s)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-ec90d7c4d0dfc63c544f682e935cba12ab6e7e37bb52aa13f20e42ffaf33144c","qualified_name":"Finset.erase_subset_iff_of_mem","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α} {a : α},\n  @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) t a →\n    Iff\n      (@LE.le.{u_1} (Finset.{u_1} α)\n        (@Preorder.toLE.{u_1} (Finset.{u_1} α)\n          (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))\n        (@Finset.erase.{u_1} α inst s a) t)\n      (@LE.le.{u_1} (Finset.{u_1} α)\n        (@Preorder.toLE.{u_1} (Finset.{u_1} α)\n          (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))\n        s t)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-01862ad539bb2fe2dc89a64120b93d1ab18ea804b9ae7bc9ffec5bf21f0ebf1d","qualified_name":"Finset.erase_union_distrib","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s t : Finset.{u_1} α) (a : α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Finset.erase.{u_1} α inst (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t) a)\n    (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) (@Finset.erase.{u_1} α inst s a)\n      (@Finset.erase.{u_1} α inst t a))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-69502a8427e41dccb64371e87b075aa1bb402c05f7e56441f0d8fd7095de2df9","qualified_name":"Finset.erase_union_eq","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (a : α) (s : Finset.{u_1} α),\n  @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s a →\n    @Eq.{u_1 + 1} (Finset.{u_1} α)\n      (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) (@Finset.erase.{u_1} α inst s a)\n        (@Singleton.singleton.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instSingleton.{u_1} α) a))\n      s"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-0cdc11230d4486802e2a167ea8031d4ec0191b10fdc1311e521b2bf920b4cb4d","qualified_name":"Finset.erase_union_of_mem","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {t : Finset.{u_1} α} {a : α},\n  @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) t a →\n    ∀ (s : Finset.{u_1} α),\n      @Eq.{u_1 + 1} (Finset.{u_1} α)\n        (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) (@Finset.erase.{u_1} α inst s a) t)\n        (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-035f7e50a776fba1af18acceff48360b61f5efaa3a76599225b08bb5ce8348e0","qualified_name":"Finset.filter_and","statement":"∀ {α : Type u_1} (p q : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] [inst_1 : @DecidablePred.{u_1 + 1} α q]\n  [inst_2 : DecidableEq.{u_1 + 1} α] (s : Finset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α) ({a ∈ s | And (p a) (q a)})\n    (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst_2) (@Finset.filter.{u_1} α p inst s)\n      (@Finset.filter.{u_1} α q inst_1 s))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-597af1f4ec358bccb053f092f9124c04f5aa220d1cdc3c52ab88c5660074b8d9","qualified_name":"Finset.filter_and_not","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s : Finset.{u_1} α) (p q : α → Prop)\n  [inst_1 : @DecidablePred.{u_1 + 1} α p] [inst_2 : @DecidablePred.{u_1 + 1} α q],\n  @Eq.{u_1 + 1} (Finset.{u_1} α) ({a ∈ s | And (p a) (Not (q a))})\n    (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) (@Finset.filter.{u_1} α p inst_1 s)\n      (@Finset.filter.{u_1} α q inst_2 s))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-8b9318f538ecd5ae56f0bad45aaec7c0bb46904474904e0e101dcb9fe5e2d0b8","qualified_name":"Finset.filter_cons","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] {a : α} (s : Finset.{u_1} α) (ha : a ∉ s),\n  @Eq.{u_1 + 1} (Finset.{u_1} α) (@Finset.filter.{u_1} α p inst (@Finset.cons.{u_1} α a s ha))\n    (@ite.{u_1 + 1} (Finset.{u_1} α) (p a) (inst a) (@Finset.cons.{u_1} α a (@Finset.filter.{u_1} α p inst s) ⋯)\n      (@Finset.filter.{u_1} α p inst s))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-185a7b754726e5fb3f5ee205c9f02c607074380f562ece3143e847c2c43cd30a","qualified_name":"Finset.filter_cons_of_neg","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] (a : α) (s : Finset.{u_1} α) (ha : a ∉ s),\n  Not (p a) →\n    @Eq.{u_1 + 1} (Finset.{u_1} α) (@Finset.filter.{u_1} α p inst (@Finset.cons.{u_1} α a s ha))\n      (@Finset.filter.{u_1} α p inst s)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-9b0c6ab5ef6496eba386bde3d9de03a9a4ef8c44939f1a0a52b3526d540ba255","qualified_name":"Finset.filter_cons_of_pos","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] (a : α) (s : Finset.{u_1} α) (ha : a ∉ s),\n  p a →\n    @Eq.{u_1 + 1} (Finset.{u_1} α) (@Finset.filter.{u_1} α p inst (@Finset.cons.{u_1} α a s ha))\n      (@Finset.cons.{u_1} α a (@Finset.filter.{u_1} α p inst s) ⋯)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-5942b677f54b0db621d17d9831f3aabc93811112504a9211d90720b8b9581775","qualified_name":"Finset.filter_disjUnion","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] (s t : Finset.{u_1} α)\n  (h : @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t),\n  @Eq.{u_1 + 1} (Finset.{u_1} α) (@Finset.filter.{u_1} α p inst (@Finset.disjUnion.{u_1} α s t h))\n    (@Finset.disjUnion.{u_1} α (@Finset.filter.{u_1} α p inst s) (@Finset.filter.{u_1} α p inst t) ⋯)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-9bfa3e105e5db4daad9bf86679d811103e4118a3fdd81360db3bf6f5016c71fe","qualified_name":"Finset.filter_eq","statement":"∀ {β : Type u_2} [inst : DecidableEq.{u_2 + 1} β] (s : Finset.{u_2} β) (b : β),\n  @Eq.{u_2 + 1} (Finset.{u_2} β) (@Finset.filter.{u_2} β (@Eq.{u_2 + 1} β b) (inst b) s)\n    (@ite.{u_2 + 1} (Finset.{u_2} β)\n      (@Membership.mem.{u_2, u_2} β (Finset.{u_2} β)\n        (@SetLike.instMembership.{u_2, u_2} (Finset.{u_2} β) β (@Finset.instSetLike.{u_2} β)) s b)\n      (@Finset.decidableMem.{u_2} β inst b s)\n      (@Singleton.singleton.{u_2, u_2} β (Finset.{u_2} β) (@Finset.instSingleton.{u_2} β) b)\n      (@EmptyCollection.emptyCollection.{u_2} (Finset.{u_2} β) (@Finset.instEmptyCollection.{u_2} β)))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-1c36dc74b38a8447591986d5f30d25de95facfcb8e5824da8ccbb74c8aa63279","qualified_name":"Finset.filter_eq'","statement":"∀ {β : Type u_2} [inst : DecidableEq.{u_2 + 1} β] (s : Finset.{u_2} β) (b : β),\n  @Eq.{u_2 + 1} (Finset.{u_2} β) ({a ∈ s | @Eq.{u_2 + 1} β a b})\n    (@ite.{u_2 + 1} (Finset.{u_2} β)\n      (@Membership.mem.{u_2, u_2} β (Finset.{u_2} β)\n        (@SetLike.instMembership.{u_2, u_2} (Finset.{u_2} β) β (@Finset.instSetLike.{u_2} β)) s b)\n      (@Finset.decidableMem.{u_2} β inst b s)\n      (@Singleton.singleton.{u_2, u_2} β (Finset.{u_2} β) (@Finset.instSingleton.{u_2} β) b)\n      (@EmptyCollection.emptyCollection.{u_2} (Finset.{u_2} β) (@Finset.instEmptyCollection.{u_2} β)))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-1f5dcaa2a7f3f93cab2a24e92fc2087571d7d2aeb0b6d92704386a7516825fa4","qualified_name":"Finset.filter_erase","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] [inst_1 : DecidableEq.{u_1 + 1} α] (a : α)\n  (s : Finset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α) (@Finset.filter.{u_1} α p inst (@Finset.erase.{u_1} α inst_1 s a))\n    (@Finset.erase.{u_1} α inst_1 (@Finset.filter.{u_1} α p inst s) a)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-c50a09c0678ed9234246aa187566fe1fb3c4cd203d0739428e4eecec04fca85b","qualified_name":"Finset.filter_insert","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] [inst_1 : DecidableEq.{u_1 + 1} α] (a : α)\n  (s : Finset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Finset.filter.{u_1} α p inst\n      (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst_1) a s))\n    (@ite.{u_1 + 1} (Finset.{u_1} α) (p a) (inst a)\n      (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst_1) a\n        (@Finset.filter.{u_1} α p inst s))\n      (@Finset.filter.{u_1} α p inst s))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-645bcbcb6cae3863dba3dab239c76aa854e57f45d8cef386393b0d0a4a959f80","qualified_name":"Finset.filter_inter","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] [inst_1 : DecidableEq.{u_1 + 1} α]\n  (s t : Finset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst_1) (@Finset.filter.{u_1} α p inst s) t)\n    (@Finset.filter.{u_1} α p inst (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst_1) s t))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-9075db716bc6917b04139b0cb65167999386701a6f3d2e4dc29e1a5970bc36e6","qualified_name":"Finset.filter_inter_distrib","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] [inst_1 : DecidableEq.{u_1 + 1} α]\n  (s t : Finset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Finset.filter.{u_1} α p inst (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst_1) s t))\n    (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst_1) (@Finset.filter.{u_1} α p inst s)\n      (@Finset.filter.{u_1} α p inst t))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-7be05d167b84262fb356ca158b00d65ebfb4631da53b8a9e112b558ebf9634ed","qualified_name":"Finset.filter_mem_eq_inter","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α}\n  [inst_1 :\n    (i : α) →\n      Decidable\n        (@Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n          (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) t i)],\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    ({i ∈ s |\n      @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n        (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) t i})\n    (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst) s t)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-b793119de75645dfba388d6e641d10caa13bd526f2436c53c440873bd215fa8e","qualified_name":"Finset.filter_ne","statement":"∀ {β : Type u_2} [inst : DecidableEq.{u_2 + 1} β] (s : Finset.{u_2} β) (b : β),\n  @Eq.{u_2 + 1} (Finset.{u_2} β) ({a ∈ s | @Ne.{u_2 + 1} β b a}) (@Finset.erase.{u_2} β inst s b)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-67dd6ca6b49f291fd253d5ed2c6523cec47f29859c28e47edbb79145d6cc83b1","qualified_name":"Finset.filter_ne'","statement":"∀ {β : Type u_2} [inst : DecidableEq.{u_2 + 1} β] (s : Finset.{u_2} β) (b : β),\n  @Eq.{u_2 + 1} (Finset.{u_2} β) ({a ∈ s | @Ne.{u_2 + 1} β a b}) (@Finset.erase.{u_2} β inst s b)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-db030257c0acfcfe793d8adf180f0507489c30a6e8bc0e3e78be11c7dd595368","qualified_name":"Finset.filter_not","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] [inst_1 : DecidableEq.{u_1 + 1} α]\n  (s : Finset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α) ({a ∈ s | Not (p a)})\n    (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst_1) s (@Finset.filter.{u_1} α p inst s))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-882ca0d30fcd7f90703f35583547edde647e165a1faaa6800324a8cfb3ce0adc","qualified_name":"Finset.filter_notMem_eq_sdiff","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α} [inst_1 : (i : α) → Decidable (i ∉ t)],\n  @Eq.{u_1 + 1} (Finset.{u_1} α) ({i ∈ s | i ∉ t})\n    (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) s t)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-3227a4ffd2a02579e67d95e6f6e6b6b51d369be5d5b0f07a33dcd1375b7bffa3","qualified_name":"Finset.filter_or","statement":"∀ {α : Type u_1} (p q : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] [inst_1 : @DecidablePred.{u_1 + 1} α q]\n  [inst_2 : DecidableEq.{u_1 + 1} α] (s : Finset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α) ({a ∈ s | Or (p a) (q a)})\n    (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst_2) (@Finset.filter.{u_1} α p inst s)\n      (@Finset.filter.{u_1} α q inst_1 s))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-ba66593e61ee6b2b05ecc15b6e248c7f984cdff6aef13306098bb3960004a2da","qualified_name":"Finset.filter_singleton","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] (a : α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Finset.filter.{u_1} α p inst\n      (@Singleton.singleton.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instSingleton.{u_1} α) a))\n    (@ite.{u_1 + 1} (Finset.{u_1} α) (p a) (inst a)\n      (@Singleton.singleton.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instSingleton.{u_1} α) a)\n      (@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α)))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-59e735f83208122bd374a30c317e816cc14ab7832a8a36b0e0971740e57839c2","qualified_name":"Finset.filter_union","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] [inst_1 : DecidableEq.{u_1 + 1} α]\n  (s₁ s₂ : Finset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Finset.filter.{u_1} α p inst (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst_1) s₁ s₂))\n    (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst_1) (@Finset.filter.{u_1} α p inst s₁)\n      (@Finset.filter.{u_1} α p inst s₂))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-af31c1c74b9ae9f60248befcdcb9bfe2c464f95063f51ff2c5e7ab7e0ae16c24","qualified_name":"Finset.filter_union_filter_not_eq","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] [inst_1 : DecidableEq.{u_1 + 1} α]\n  [inst_2 : (x : α) → Decidable (Not (p x))] (s : Finset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst_1) (@Finset.filter.{u_1} α p inst s)\n      ({a ∈ s | Not (p a)}))\n    s"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-eea51da815b1dafd0af68355eeca32f353a7e1158dd215182a99366b1973f3e3","qualified_name":"Finset.filter_union_filter_of_codisjoint","statement":"∀ {α : Type u_1} (p q : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] [inst_1 : @DecidablePred.{u_1 + 1} α q]\n  [inst_2 : DecidableEq.{u_1 + 1} α] (s : Finset.{u_1} α),\n  @Codisjoint.{u_1} (α → Prop) (@Pi.partialOrder.{u_1, 0} α (fun a => Prop) fun i => «Prop».partialOrder)\n      (@Pi.instOrderTop.{u_1, 0} α (fun a => Prop) (fun i => «Prop».le) fun i =>\n        @CoheytingAlgebra.toOrderTop.{0} Prop\n          (@BiheytingAlgebra.toCoheytingAlgebra.{0} Prop\n            (@BooleanAlgebra.toBiheytingAlgebra.{0} Prop «Prop».instBooleanAlgebra)))\n      p q →\n    @Eq.{u_1 + 1} (Finset.{u_1} α)\n      (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst_2) (@Finset.filter.{u_1} α p inst s)\n        (@Finset.filter.{u_1} α q inst_1 s))\n      s"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-1e165973f42d16e12c4650b31ebd51dec534248c9dd54a2b4d2b475f080274ce","qualified_name":"Finset.filter_union_right","statement":"∀ {α : Type u_1} (p q : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] [inst_1 : @DecidablePred.{u_1 + 1} α q]\n  [inst_2 : DecidableEq.{u_1 + 1} α] (s : Finset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst_2) (@Finset.filter.{u_1} α p inst s)\n      (@Finset.filter.{u_1} α q inst_1 s))\n    ({x ∈ s | Or (p x) (q x)})"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-c299aa72e6e857b961fcd44ae8ef914f53fd7d931ab37b4a0a81ec54a64e0d17","qualified_name":"Finset.insert_erase","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s : Finset.{u_1} α} {a : α},\n  @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s a →\n    @Eq.{u_1 + 1} (Finset.{u_1} α)\n      (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a\n        (@Finset.erase.{u_1} α inst s a))\n      s"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-e696d98657933e048e395484b4317677c6e013a674cb6980f08001cd704f3837","qualified_name":"Finset.insert_erase_eq_insert","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s : Finset.{u_1} α} {a : α},\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a (@Finset.erase.{u_1} α inst s a))\n    (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a s)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-76879b62a093972902a9b49ebefc575226578a535d70424e7209fb8a6690451a","qualified_name":"Finset.insert_erase_invOn","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {a : α},\n  @Set.InvOn.{u_1, u_1} (Finset.{u_1} α) (Finset.{u_1} α)\n    (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a)\n    (fun s => @Finset.erase.{u_1} α inst s a)\n    (@Set.ofPred.{u_1} (Finset.{u_1} α) fun s =>\n      @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n        (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s a)\n    (@Set.ofPred.{u_1} (Finset.{u_1} α) fun s => a ∉ s)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-60a064fd95ee2009ebca80fe846bf970f8486006c7c2908f14cfdc834690190a","qualified_name":"Finset.insert_erase_subset","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (a : α) (s : Finset.{u_1} α),\n  @LE.le.{u_1} (Finset.{u_1} α)\n    (@Preorder.toLE.{u_1} (Finset.{u_1} α)\n      (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))\n    s\n    (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a (@Finset.erase.{u_1} α inst s a))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-ffea75720f0e5c426490ee096faa0027f40db90bbeb5780b524c034f0366a161","qualified_name":"Finset.insert_inter_distrib","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s t : Finset.{u_1} α) (a : α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a\n      (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst) s t))\n    (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst)\n      (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a s)\n      (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a t))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-5e7e28e480c48a8d110df736778d63f0cda947174b6c48a3a43710d4a314ac06","qualified_name":"Finset.inter_erase","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (a : α) (s t : Finset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst) s (@Finset.erase.{u_1} α inst t a))\n    (@Finset.erase.{u_1} α inst (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst) s t) a)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-a6bdb3e7e88a67f7498bf2f349a5b948a717782c381eeace442698b167f527fc","qualified_name":"Finset.inter_filter","statement":"∀ {α : Type u_1} (p : α → Prop) [inst : @DecidablePred.{u_1 + 1} α p] [inst_1 : DecidableEq.{u_1 + 1} α]\n  (s t : Finset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst_1) s (@Finset.filter.{u_1} α p inst t))\n    (@Finset.filter.{u_1} α p inst (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst_1) s t))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-72f892831d4c9da739680a9babfbc617edfb202188c0d15c1f7f51dc105bcdcd","qualified_name":"Finset.isDirected_le","statement":"∀ {α : Type u_1},\n  @IsDirectedOrder.{u_1} (Finset.{u_1} α)\n    (@Preorder.toLE.{u_1} (Finset.{u_1} α)\n      (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-0ceface301a7d1025b2d3475e581acddd1002b38dff996dc6173e2fc478bb06e","qualified_name":"Finset.isDirected_subset","statement":"∀ {α : Type u_1},\n  IsDirected.{u_1 + 1} (Finset.{u_1} α) fun x1 x2 =>\n    @LE.le.{u_1} (Finset.{u_1} α)\n      (@Preorder.toLE.{u_1} (Finset.{u_1} α)\n        (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))\n      x1 x2"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-f230b47574309333447e8aaf043366bd04cfb58183a436e72da8c534a1ef1724","qualified_name":"Finset.isEmpty_of_forall_eq_empty","statement":"∀ {α : Type u_3},\n  (∀ (s : Finset.{u_3} α),\n      @Eq.{u_3 + 1} (Finset.{u_3} α) s\n        (@EmptyCollection.emptyCollection.{u_3} (Finset.{u_3} α) (@Finset.instEmptyCollection.{u_3} α))) →\n    IsEmpty.{u_3 + 1} α"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-796230debf8f32eeed027e61e499994461eb988ffd8019d26962e88ccc733f20","qualified_name":"Finset.mem_union_of_disjoint","statement":"∀ {α : Type u_3} [inst : DecidableEq.{u_3 + 1} α] {s t : Finset.{u_3} α},\n  @Disjoint.{u_3} (Finset.{u_3} α) (@Finset.instPartialOrder.{u_3} α) (@Finset.instOrderBot.{u_3} α) s t →\n    ∀ {x : α},\n      Iff\n        (@Membership.mem.{u_3, u_3} α (Finset.{u_3} α)\n          (@SetLike.instMembership.{u_3, u_3} (Finset.{u_3} α) α (@Finset.instSetLike.{u_3} α))\n          (@Union.union.{u_3} (Finset.{u_3} α) (@Finset.instUnion.{u_3} α inst) s t) x)\n        (Xor\n          (@Membership.mem.{u_3, u_3} α (Finset.{u_3} α)\n            (@SetLike.instMembership.{u_3, u_3} (Finset.{u_3} α) α (@Finset.instSetLike.{u_3} α)) s x)\n          (@Membership.mem.{u_3, u_3} α (Finset.{u_3} α)\n            (@SetLike.instMembership.{u_3, u_3} (Finset.{u_3} α) α (@Finset.instSetLike.{u_3} α)) t x))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-a57c5abd4c3e84f46319bd0ed60ba95cd31b434260aa69363bc3465ad5eed739","qualified_name":"Finset.not_disjoint_iff_nonempty_inter","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α},\n  Iff (Not (@Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α) s t))\n    (@Finset.Nonempty.{u_1} α (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst) s t))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-7bab824412e8ae6e254977afd2a2dfa43db3e968cdde3651bd0591f710f584d5","qualified_name":"Finset.pairwiseDisjoint_iff","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {ι : Type u_3} {s : Set.{u_3} ι} {f : ι → Finset.{u_1} α},\n  Iff\n    (@Set.PairwiseDisjoint.{u_1, u_3} (Finset.{u_1} α) ι (@Finset.instPartialOrder.{u_1} α)\n      (@Finset.instOrderBot.{u_1} α) s f)\n    (∀ ⦃i : ι⦄,\n      @Membership.mem.{u_3, u_3} ι (Set.{u_3} ι) (@Set.instMembership.{u_3} ι) s i →\n        ∀ ⦃j : ι⦄,\n          @Membership.mem.{u_3, u_3} ι (Set.{u_3} ι) (@Set.instMembership.{u_3} ι) s j →\n            @Finset.Nonempty.{u_1} α\n                (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst) (f i) (f j)) →\n              @Eq.{u_3 + 1} ι i j)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-fe5a944f24fd0b129da955874a608f5bcc26758a36277ccfd2108ac0c4a420aa","qualified_name":"Finset.range_filter_eq","statement":"∀ {n m : Nat},\n  @Eq.{1} (Finset.{0} Nat) ({x ∈ Finset.range n | @Eq.{1} Nat x m})\n    (@ite.{1} (Finset.{0} Nat) (@LT.lt.{0} Nat instLTNat m n) (m.decLt n)\n      (@Singleton.singleton.{0, 0} Nat (Finset.{0} Nat) (@Finset.instSingleton.{0} Nat) m)\n      (@EmptyCollection.emptyCollection.{0} (Finset.{0} Nat) (@Finset.instEmptyCollection.{0} Nat)))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-521d63102fe7e5eafbe3b98d002cc3154ae2980453676065f2791f8d3b7a7500","qualified_name":"Finset.range_inter_range","statement":"∀ (m n : Nat),\n  @Eq.{1} (Finset.{0} Nat)\n    (@Inter.inter.{0} (Finset.{0} Nat) (@Finset.instInter.{0} Nat instDecidableEqNat) (Finset.range m) (Finset.range n))\n    (Finset.range (@Min.min.{0} Nat instMinNat m n))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-c6cb111edff245d73bb78b91385d7e86ce4664a5f284ad16aca03dc0c6289227","qualified_name":"Finset.range_union_range","statement":"∀ (m n : Nat),\n  @Eq.{1} (Finset.{0} Nat)\n    (@Union.union.{0} (Finset.{0} Nat) (@Finset.instUnion.{0} Nat instDecidableEqNat) (Finset.range m) (Finset.range n))\n    (Finset.range (@Max.max.{0} Nat Nat.instMax m n))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-c277ec2a32fed60693064394548e7e6ec2e5693168c4977ae354ab023915ee2e","qualified_name":"Finset.sdiff_disjoint","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α},\n  @Disjoint.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α) (@Finset.instOrderBot.{u_1} α)\n    (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) t s) s"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-39bdecaf6fc8a869b79f068e8a01a109138fe0ce7ef9f9f8895092df0498cf50","qualified_name":"Finset.sdiff_eq_filter","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s₁ s₂ : Finset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α) (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) s₁ s₂)\n    ({x ∈ s₁ | x ∉ s₂})"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-19070fb4afdf72c8562aa918322713b6ddd944e177e0e42980da4b18230c8be1","qualified_name":"Finset.sdiff_erase","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α} {a : α},\n  @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s a →\n    @Eq.{u_1 + 1} (Finset.{u_1} α)\n      (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) s (@Finset.erase.{u_1} α inst t a))\n      (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a\n        (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) s t))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-880ef6a304c8635073f00863be0a344fec5cb334bb4c434f7df66fdd8b8dfcb7","qualified_name":"Finset.sdiff_erase_self","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s : Finset.{u_1} α} {a : α},\n  @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s a →\n    @Eq.{u_1 + 1} (Finset.{u_1} α)\n      (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) s (@Finset.erase.{u_1} α inst s a))\n      (@Singleton.singleton.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instSingleton.{u_1} α) a)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-3003d59670ee0c4751e80080da8caa7c57efb30423d37e3a038c66a2e1c2dd1f","qualified_name":"Finset.sdiff_insert","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s t : Finset.{u_1} α) (x : α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) s\n      (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) x t))\n    (@Finset.erase.{u_1} α inst (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) s t) x)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-14a0bfba272135c7bdbbd70cf209c4a302fc5fa7e37d09b0aba3bd751010ecec","qualified_name":"Finset.sdiff_insert_insert_of_mem_of_notMem","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α} {x : α},\n  @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s x →\n    x ∉ t →\n      @Eq.{u_1 + 1} (Finset.{u_1} α)\n        (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) x\n          (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) s\n            (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) x t)))\n        (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) s t)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-a733a4c350ecc61ca3a7aa9f967e4f0118537fc5a2bac9a113faf0d07a108c0e","qualified_name":"Finset.sdiff_singleton_eq_erase","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (a : α) (s : Finset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) s\n      (@Singleton.singleton.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instSingleton.{u_1} α) a))\n    (@Finset.erase.{u_1} α inst s a)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-0dd7d32aaa51321babb3e24e089ad79dbe250ed9b7299c8b4f60ab3aef38848b","qualified_name":"Finset.sdiff_union_erase_cancel","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α} {a : α},\n  @LE.le.{u_1} (Finset.{u_1} α)\n      (@Preorder.toLE.{u_1} (Finset.{u_1} α)\n        (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))\n      t s →\n    @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n        (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) t a →\n      @Eq.{u_1 + 1} (Finset.{u_1} α)\n        (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst)\n          (@SDiff.sdiff.{u_1} (Finset.{u_1} α) (@Finset.instSDiff.{u_1} α inst) s t) (@Finset.erase.{u_1} α inst t a))\n        (@Finset.erase.{u_1} α inst s a)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-ab7975ba00222ad6517da3aedc0f832a04eb51ca01a6cdbde5fbede3f26a3ac2","qualified_name":"Finset.ssubset_iff_exists_subset_erase","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α},\n  Iff\n    (@LT.lt.{u_1} (Finset.{u_1} α)\n      (@Preorder.toLT.{u_1} (Finset.{u_1} α)\n        (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))\n      s t)\n    (∃ a,\n      And\n        (@Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n          (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) t a)\n        (@LE.le.{u_1} (Finset.{u_1} α)\n          (@Preorder.toLE.{u_1} (Finset.{u_1} α)\n            (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))\n          s (@Finset.erase.{u_1} α inst t a)))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-2f2f0ada326d227c499e58320495c205de8315062abc899065359a3ad16ef7ee","qualified_name":"Finset.subset_insert_iff","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {a : α} {s t : Finset.{u_1} α},\n  Iff\n    (@LE.le.{u_1} (Finset.{u_1} α)\n      (@Preorder.toLE.{u_1} (Finset.{u_1} α)\n        (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))\n      s (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a t))\n    (@LE.le.{u_1} (Finset.{u_1} α)\n      (@Preorder.toLE.{u_1} (Finset.{u_1} α)\n        (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))\n      (@Finset.erase.{u_1} α inst s a) t)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-33562f9399f3e52696c63b9b03da1159ad6d43f0d8da1939a859194dcd9f7a74","qualified_name":"Finset.subset_insert_iff_of_notMem","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s t : Finset.{u_1} α} {a : α},\n  a ∉ s →\n    Iff\n      (@LE.le.{u_1} (Finset.{u_1} α)\n        (@Preorder.toLE.{u_1} (Finset.{u_1} α)\n          (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))\n        s (@Insert.insert.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instInsert.{u_1} α inst) a t))\n      (@LE.le.{u_1} (Finset.{u_1} α)\n        (@Preorder.toLE.{u_1} (Finset.{u_1} α)\n          (@PartialOrder.toPreorder.{u_1} (Finset.{u_1} α) (@Finset.instPartialOrder.{u_1} α)))\n        s t)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-7ea63d707c4126fd6dd6982105ca6a48f33bf082612b7919cc48f15fc06ad5e8","qualified_name":"Finset.subset_union_elim","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s : Finset.{u_1} α} {t₁ t₂ : Set.{u_1} α},\n  @LE.le.{u_1} (Set.{u_1} α) (@Set.instLE.{u_1} α)\n      (@SetLike.coe.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α) s)\n      (@Union.union.{u_1} (Set.{u_1} α) (@Set.instUnion.{u_1} α) t₁ t₂) →\n    ∃ s₁ s₂,\n      And\n        (@Eq.{u_1 + 1} (Finset.{u_1} α) (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s₁ s₂) s)\n        (And\n          (@LE.le.{u_1} (Set.{u_1} α) (@Set.instLE.{u_1} α)\n            (@SetLike.coe.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α) s₁) t₁)\n          (@LE.le.{u_1} (Set.{u_1} α) (@Set.instLE.{u_1} α)\n            (@SetLike.coe.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α) s₂)\n            (@SDiff.sdiff.{u_1} (Set.{u_1} α) (@Set.instSDiff.{u_1} α) t₂ t₁)))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-d97293238ca89a8ba5fdaf3bf24c2b03657b7cd4e106b3e607c3389dd278c510","qualified_name":"Finset.toList_empty","statement":"∀ {α : Type u_1},\n  @Eq.{u_1 + 1} (List.{u_1} α)\n    (@Finset.toList.{u_1} α\n      (@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α)))\n    (@List.nil.{u_1} α)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-fdfc9d20c14659bb8b553e0e7f9be0ec586caea7a1679945305ef5238a02f35c","qualified_name":"Finset.toList_eq_nil","statement":"∀ {α : Type u_1} {s : Finset.{u_1} α},\n  Iff (@Eq.{u_1 + 1} (List.{u_1} α) (@Finset.toList.{u_1} α s) (@List.nil.{u_1} α))\n    (@Eq.{u_1 + 1} (Finset.{u_1} α) s\n      (@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α)))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-a9fe62ac5d2fffdcaf8485735aa3188bc9f0db2dff80d0baf2b2cedea4743329","qualified_name":"Finset.union_erase_of_mem","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s : Finset.{u_1} α} {a : α},\n  @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n      (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s a →\n    ∀ (t : Finset.{u_1} α),\n      @Eq.{u_1 + 1} (Finset.{u_1} α)\n        (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s (@Finset.erase.{u_1} α inst t a))\n        (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) s t)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-6199613255e1b6762766f44488de0ebe078c8a1bfebfbdb65d838518dd9e960e","qualified_name":"Finset.univ_finset_eq_singleton_empty_iff","statement":"∀ {α : Type u_3},\n  Iff\n    (@Eq.{u_3 + 1} (Set.{u_3} (Finset.{u_3} α)) (@Set.univ.{u_3} (Finset.{u_3} α))\n      (@Singleton.singleton.{u_3, u_3} (Finset.{u_3} α) (Set.{u_3} (Finset.{u_3} α))\n        (@Set.instSingletonSet.{u_3} (Finset.{u_3} α))\n        (@EmptyCollection.emptyCollection.{u_3} (Finset.{u_3} α) (@Finset.instEmptyCollection.{u_3} α))))\n    (IsEmpty.{u_3 + 1} α)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-6205878bd4feb92d13e7b17a4df3498b24086f22ba2568850104ec0f90744dc1","qualified_name":"Finset.univ_finset_of_isEmpty","statement":"∀ {α : Type u_3} [h : IsEmpty.{u_3 + 1} α],\n  @Eq.{u_3 + 1} (Set.{u_3} (Finset.{u_3} α)) (@Set.univ.{u_3} (Finset.{u_3} α))\n    (@Singleton.singleton.{u_3, u_3} (Finset.{u_3} α) (Set.{u_3} (Finset.{u_3} α))\n      (@Set.instSingletonSet.{u_3} (Finset.{u_3} α))\n      (@EmptyCollection.emptyCollection.{u_3} (Finset.{u_3} α) (@Finset.instEmptyCollection.{u_3} α)))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-47b5f7182a73727482846e432af614edaf911edbdc4cfddf5807cc48b30f9a1f","qualified_name":"Function.Bijective.comp_left","statement":"∀ {α : Sort u} {β : Sort v} {γ : Sort w} {g : β → γ},\n  @Function.Bijective.{v, w} β γ g →\n    @Function.Bijective.{imax u v, imax u w} (α → β) (α → γ) fun x => @Function.comp.{u, v, w} α β γ g x"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-496ae7e940ba6a53d5edd92feef934263b4def94a4d45197f1f6ef20e09a69c3","qualified_name":"Function.Bijective.comp_right","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β},\n  @Function.Bijective.{u_1, u_2} α β f →\n    @Function.Bijective.{imax u_2 u_3, imax u_1 u_3} (β → γ) (α → γ) fun g => @Function.comp.{u_1, u_2, u_3} α β γ g f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-0218d51d024d7ae54f2b0a447987644f4188f81a7f342ec8ec1db29950a8546a","qualified_name":"Function.Bijective.existsUnique","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β},\n  @Function.Bijective.{u_1, u_2} α β f → ∀ (b : β), @ExistsUnique.{u_1} α fun a => @Eq.{u_2} β (f a) b"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-940a1237446bf5c0c17fce0b29871d12f541e7f02ddf19f39363fb4b561da1b7","qualified_name":"Function.Bijective.existsUnique_iff","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β},\n  @Function.Bijective.{u_1, u_2} α β f →\n    ∀ {p : β → Prop}, Iff (@ExistsUnique.{u_2} β fun y => p y) (@ExistsUnique.{u_1} α fun x => p (f x))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-cfa88f2f7373497a4d09c23aaed3e9dadfb76350cea2b84dd13add41edae2b3b","qualified_name":"Function.Bijective.injective","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β}, @Function.Bijective.{u_1, u_2} α β f → @Function.Injective.{u_1, u_2} α β f"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-c9519dd95388b088391e33ef067ba9dd26b611124ed73b1d36a21515c73a0ca5","qualified_name":"Function.Bijective.list_map","statement":"∀ {α : Type u} {β : Type v} {f : α → β},\n  @Function.Bijective.{u + 1, v + 1} α β f →\n    @Function.Bijective.{u + 1, v + 1} (List.{u} α) (List.{v} β) (@List.map.{u, v} α β f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-b3e2e3f89a087832843974ec4e1511df599d876d0697eb6e6745106dd5a9e248","qualified_name":"Function.Bijective.of_comp_iff","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} (f : α → β) {g : γ → α},\n  @Function.Bijective.{u_3, u_1} γ α g →\n    Iff (@Function.Bijective.{u_3, u_2} γ β (@Function.comp.{u_3, u_1, u_2} γ α β f g))\n      (@Function.Bijective.{u_1, u_2} α β f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-1ff38f53579e488fc536bd01e2d288fb0c672101a81ce775306182dd84dfe94d","qualified_name":"Function.Bijective.of_comp_iff'","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β},\n  @Function.Bijective.{u_1, u_2} α β f →\n    ∀ (g : γ → α),\n      Iff (@Function.Bijective.{u_3, u_2} γ β (@Function.comp.{u_3, u_1, u_2} γ α β f g))\n        (@Function.Bijective.{u_3, u_1} γ α g)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-596cda234697193a3f5c65a68309fb10a23c5dde26fe887e76ebd974b60610a0","qualified_name":"Function.Bijective.of_comp_left","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β} {g : γ → α},\n  @Function.Bijective.{u_3, u_2} γ β (@Function.comp.{u_3, u_1, u_2} γ α β f g) →\n    @Function.Injective.{u_1, u_2} α β f → @Function.Bijective.{u_3, u_1} γ α g"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-da0433d607eda7626fd6f3a1aa1c1e9ab8dba1ce9830624044bcdac4f19549d5","qualified_name":"Function.Bijective.piMap","statement":"∀ {ι : Sort u_1} {α : ι → Sort u_2} {β : ι → Sort u_3} {f : (i : ι) → α i → β i},\n  (∀ (i : ι), @Function.Bijective.{u_2, u_3} (α i) (β i) (f i)) →\n    @Function.Bijective.{imax u_1 u_2, imax u_1 u_3} ((i : ι) → α i) ((i : ι) → β i) (@Pi.map.{u_1, u_2, u_3} ι α β f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-d32d18485833114e3a66561f5f577bb3afef2e7b7ef80aa1fc7fdde2ee9f4cca","qualified_name":"Function.Bijective.surjective","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β},\n  @Function.Bijective.{u_1, u_2} α β f → @Function.Surjective.{u_1, u_2} α β f"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-4bd375ba0b73c0603dfec8902fda54d1e6eca74140468725f0e73acaf43f0317","qualified_name":"Function.FactorsThrough","statement":"{α : Sort u_1} → {β : Sort u_2} → {γ : Sort u_3} → (α → γ) → (α → β) → Prop"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-94fe610e59c13dbf3617f69f1f4ea1b45da81601ee8694c15bbb31c4d391643a","qualified_name":"Function.FactorsThrough.comp_left","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {δ : Sort u_4} {f : α → β} {g : α → γ},\n  @Function.FactorsThrough.{u_1, u_2, u_3} α β γ g f →\n    ∀ (g' : γ → δ), @Function.FactorsThrough.{u_1, u_2, u_4} α β δ (@Function.comp.{u_1, u_3, u_4} α γ δ g' g) f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-22e989c3f91c32bbdc119363e682d4af83d0e3f823d7bba4b503fa5d01504367","qualified_name":"Function.FactorsThrough.comp_right","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {δ : Sort u_4} {f : α → β} {g : α → γ},\n  @Function.FactorsThrough.{u_1, u_2, u_3} α β γ g f →\n    ∀ (g' : δ → α),\n      @Function.FactorsThrough.{u_4, u_2, u_3} δ β γ (@Function.comp.{u_4, u_1, u_3} δ α γ g g')\n        (@Function.comp.{u_4, u_1, u_2} δ α β f g')"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-36e18ecb67abce5aa44e2a03e795fa909f604dc1d01fd5da163eea596d5a5d89","qualified_name":"Function.FactorsThrough.extend_apply","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β} {g : α → γ},\n  @Function.FactorsThrough.{u_1, u_2, u_3} α β γ g f →\n    ∀ (e' : β → γ) (a : α), @Eq.{u_3} γ (@Function.extend.{u_1, u_2, u_3} α β γ f g e' (f a)) (g a)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-2afb621151c4d0a94a6e6b401975b5c46f091440b53a4efefb37e5287c645aa8","qualified_name":"Function.FactorsThrough.extend_comp","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β} {g : α → γ} (e' : β → γ),\n  @Function.FactorsThrough.{u_1, u_2, u_3} α β γ g f →\n    @Eq.{imax u_1 u_3} (α → γ) (@Function.comp.{u_1, u_2, u_3} α β γ (@Function.extend.{u_1, u_2, u_3} α β γ f g e') f)\n      g"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-eea64831c0b3692690e72fee85923a475cb0bde006771ab38fc620d03639cae9","qualified_name":"Function.FactorsThrough.rfl","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β}, @Function.FactorsThrough.{u_1, u_2, u_2} α β β f f"},{"kind":"inductive","module":"Mathlib.Logic.Function.Basic","object_id":"object-20267e6c14ac4f59f2ab33728ab74f429af61ed8b83bb1b137c03eb193ae5a02","qualified_name":"Function.HasUncurry","statement":"Type u_5 → outParam.{u_6 + 2} (Type u_6) → outParam.{u_7 + 2} (Type u_7) → Type (max (max u_5 u_6) u_7)"},{"kind":"constructor","module":"Mathlib.Logic.Function.Basic","object_id":"object-4805e8dfa828c33eb674be02a7860a55e49ee0b45613e68bb755b21a7dfb6fd5","qualified_name":"Function.HasUncurry.mk","statement":"{α : Type u_5} →\n  {β : outParam.{u_6 + 2} (Type u_6)} →\n    {γ : outParam.{u_7 + 2} (Type u_7)} → (α → β → γ) → Function.HasUncurry.{u_5, u_6, u_7} α β γ"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-c5c760ea0d2c664fd77af111139249f740427440b1a3a1f7180ce81206893f4e","qualified_name":"Function.HasUncurry.uncurry","statement":"{α : Type u_5} →\n  {β : outParam.{u_6 + 2} (Type u_6)} →\n    {γ : outParam.{u_7 + 2} (Type u_7)} → [self : Function.HasUncurry.{u_5, u_6, u_7} α β γ] → α → β → γ"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-347598c12233bf41a42c01b46fb08fb9214ae5f9caeaf10f9ada11f5d1f395e8","qualified_name":"Function.Injective.antisymm_onFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} (r : β → β → Prop) {f : α → β},\n  @Function.Injective.{u_1, u_2} α β f →\n    ∀ [@Std.Antisymm.{u_2} β r], @Std.Antisymm.{u_1} α (@Function.onFun.{u_1, u_2, 1} α β Prop r f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-ccac5390ffca1d67d5c51a9dd1a44428e049f9a594429c6f58fd76feef5882ed","qualified_name":"Function.Injective.bijective₂_of_surjective","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β} {g : γ → α},\n  @Function.Injective.{u_1, u_2} α β f →\n    @Function.Injective.{u_3, u_1} γ α g →\n      @Function.Surjective.{u_3, u_2} γ β (@Function.comp.{u_3, u_1, u_2} γ α β f g) →\n        And (@Function.Bijective.{u_1, u_2} α β f) (@Function.Bijective.{u_3, u_1} γ α g)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-b33c500cabec83d97349bba3f262b0746723e86f3f5c5ffb38a95b18606e0e19","qualified_name":"Function.Injective.comp_left","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {g : β → γ},\n  @Function.Injective.{u_2, u_3} β γ g →\n    @Function.Injective.{imax u_1 u_2, imax u_1 u_3} (α → β) (α → γ) fun x => @Function.comp.{u_1, u_2, u_3} α β γ g x"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-3e769023bb3c4a9e75d25496ab87a5059ff62cc36c388e404bcbe81b848a5b35","qualified_name":"Function.Injective.decidableEq","statement":"{α : Sort u_1} →\n  {β : Sort u_2} → {f : α → β} → [DecidableEq.{u_2} β] → @Function.Injective.{u_1, u_2} α β f → DecidableEq.{u_1} α"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-483a7120ad73636c3d0ebe77dd339be94d49e4f2d99a3640e008de495158cb76","qualified_name":"Function.Injective.dite","statement":"∀ {α : Sort u_1} {β : Sort u_2} (p : α → Prop) [inst : @DecidablePred.{u_1} α p]\n  {f : (@Subtype.{u_1} α fun a => p a) → β} {f' : (@Subtype.{u_1} α fun a => Not (p a)) → β},\n  @Function.Injective.{max 1 u_1, u_2} (@Subtype.{u_1} α fun a => p a) β f →\n    @Function.Injective.{max 1 u_1, u_2} (@Subtype.{u_1} α fun a => Not (p a)) β f' →\n      (∀ {x x' : α} {hx : p x} {hx' : Not (p x')},\n          @Ne.{u_2} β (f (@Subtype.mk.{u_1} α (fun a => p a) x hx))\n            (f' (@Subtype.mk.{u_1} α (fun a => Not (p a)) x' hx'))) →\n        @Function.Injective.{u_1, u_2} α β fun x =>\n          @dite.{u_2} β (p x) (inst x) (fun h => f (@Subtype.mk.{u_1} α (fun a => p a) x h)) fun h =>\n            f' (@Subtype.mk.{u_1} α (fun a => Not (p a)) x h)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-75be4b3d0053c9080b7b61ec8d393e910082cf0e1ff67aa9f4ae3192e109c4a9","qualified_name":"Function.Injective.extend_apply","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β},\n  @Function.Injective.{u_1, u_2} α β f →\n    ∀ (g : α → γ) (e' : β → γ) (a : α), @Eq.{u_3} γ (@Function.extend.{u_1, u_2, u_3} α β γ f g e' (f a)) (g a)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-2eba5ee7c2dd4494dd959ae6e2b9f7f9cec654f105c5c4a1063949b21abcdaf2","qualified_name":"Function.Injective.extend_comp","statement":"∀ {γ : Sort u_3} {α₁ : Sort u_4} {α₂ : Sort u_5} {α₃ : Sort u_6} {f₁₂ : α₁ → α₂},\n  @Function.Injective.{u_4, u_5} α₁ α₂ f₁₂ →\n    ∀ {f₂₃ : α₂ → α₃},\n      @Function.Injective.{u_5, u_6} α₂ α₃ f₂₃ →\n        ∀ (g : α₁ → γ) (e' : α₃ → γ),\n          @Eq.{imax u_6 u_3} (α₃ → γ)\n            (@Function.extend.{u_4, u_6, u_3} α₁ α₃ γ (@Function.comp.{u_4, u_5, u_6} α₁ α₂ α₃ f₂₃ f₁₂) g e')\n            (@Function.extend.{u_5, u_6, u_3} α₂ α₃ γ f₂₃\n              (@Function.extend.{u_4, u_5, u_3} α₁ α₂ γ f₁₂ g (@Function.comp.{u_5, u_6, u_3} α₂ α₃ γ e' f₂₃)) e')"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f6a6ae8335aa2f662bdecf40e7066ad92bd29a2558d0de70cabcc3f0fee3f4af","qualified_name":"Function.Injective.factorsThrough","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β},\n  @Function.Injective.{u_1, u_2} α β f → ∀ (g : α → γ), @Function.FactorsThrough.{u_1, u_2, u_3} α β γ g f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-d37f2d6f18d382115c54482ade82ac148bee73e75a48c18a595695008d76f803","qualified_name":"Function.Injective.hasLeftInverse","statement":"∀ {α : Sort u_1} {β : Sort u_2} [Nonempty.{u_1} α] {f : α → β},\n  @Function.Injective.{u_1, u_2} α β f → @Function.HasLeftInverse.{u_1, u_2} α β f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f1b97caa8b2d944441e139bc8597eb4325a18c3c99eed16d35853000b5be2f97","qualified_name":"Function.Injective.isLinearOrder_onFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} (r : β → β → Prop) {f : α → β},\n  @Function.Injective.{u_1, u_2} α β f →\n    ∀ [IsLinearOrder.{u_2} β r], IsLinearOrder.{u_1} α (@Function.onFun.{u_1, u_2, 1} α β Prop r f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-d7d41aca2ab8f92828eea2b7e0b978056d5f4ac1c889cb5563b20364574fc503","qualified_name":"Function.Injective.isPartialInv","statement":"∀ {α : Type u_4} {β : Sort u_5} {f : α → β},\n  @Function.Injective.{u_4 + 1, u_5} α β f →\n    @Function.IsPartialInv.{u_4, u_5} α β f (@Function.partialInv.{u_4, u_5} α β f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-e439eaf26ca9346097f0e9d5f56a7df4eb629bd369e716c99010fe367e34d110","qualified_name":"Function.Injective.isPartialOrder_onFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} (r : β → β → Prop) {f : α → β},\n  @Function.Injective.{u_1, u_2} α β f →\n    ∀ [IsPartialOrder.{u_2} β r], IsPartialOrder.{u_1} α (@Function.onFun.{u_1, u_2, 1} α β Prop r f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-7332e69bc46a433f1b97279b124ddd3fbd3b72d550a715ee0f5c51f6688402e1","qualified_name":"Function.Injective.isStrictTotalOrder_onFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} (r : β → β → Prop) {f : α → β},\n  @Function.Injective.{u_1, u_2} α β f →\n    ∀ [IsStrictTotalOrder.{u_2} β r], IsStrictTotalOrder.{u_1} α (@Function.onFun.{u_1, u_2, 1} α β Prop r f)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-464448cdd150a0d4c61c2f75c4192689b571fa7e74f1a89c71e649242558495c","qualified_name":"Function.Injective.linearOrder","statement":"{α : Type u_2} →\n  {β : Type u_3} →\n    [inst : LinearOrder.{u_3} β] →\n      [inst_1 : LE.{u_2} α] →\n        [inst_2 : LT.{u_2} α] →\n          [inst_3 : Max.{u_2} α] →\n            [inst_4 : Min.{u_2} α] →\n              [inst_5 : Ord.{u_2} α] →\n                [DecidableEq.{u_2 + 1} α] →\n                  [@DecidableLE.{u_2} α inst_1] →\n                    [@DecidableLT.{u_2} α inst_2] →\n                      (f : α → β) →\n                        @Function.Injective.{u_2 + 1, u_3 + 1} α β f →\n                          (∀ {x y : α},\n                              Iff\n                                (@LE.le.{u_3} β\n                                  (@Preorder.toLE.{u_3} β\n                                    (@PartialOrder.toPreorder.{u_3} β (@LinearOrder.toPartialOrder.{u_3} β inst)))\n                                  (f x) (f y))\n                                (@LE.le.{u_2} α inst_1 x y)) →\n                            (∀ {x y : α},\n                                Iff\n                                  (@LT.lt.{u_3} β\n                                    (@Preorder.toLT.{u_3} β\n                                      (@PartialOrder.toPreorder.{u_3} β (@LinearOrder.toPartialOrder.{u_3} β inst)))\n                                    (f x) (f y))\n                                  (@LT.lt.{u_2} α inst_2 x y)) →\n                              (∀ (x y : α),\n                                  @Eq.{u_3 + 1} β (f (@Min.min.{u_2} α inst_4 x y))\n                                    (@Min.min.{u_3} β (@LinearOrder.toMin.{u_3} β inst) (f x) (f y))) →\n                                (∀ (x y : α),\n                                    @Eq.{u_3 + 1} β (f (@Max.max.{u_2} α inst_3 x y))\n                                      (@Max.max.{u_3} β (@LinearOrder.toMax.{u_3} β inst) (f x) (f y))) →\n                                  (∀ (x y : α),\n                                      @Eq.{1} Ordering\n                                        (@Ord.compare.{u_3} β (@LinearOrder.toOrd.{u_3} β inst) (f x) (f y))\n                                        (@Ord.compare.{u_2} α inst_5 x y)) →\n                                    LinearOrder.{u_2} α"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-fbf0d55339ceef5d885fa528ec900cffdbca552fdaf874fc9a51b1506b53af0b","qualified_name":"Function.Injective.list_map","statement":"∀ {α : Type u} {β : Type v} {f : α → β},\n  @Function.Injective.{u + 1, v + 1} α β f →\n    @Function.Injective.{u + 1, v + 1} (List.{u} α) (List.{v} β) (@List.map.{u, v} α β f)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-8c2007a352272abda206f44d8538585f4e30fca9182bfcf21d85792b41e8e213","qualified_name":"Function.Injective.nonempty_apply_iff","statement":"∀ {α : Type u_1} {β : Type u_2} {f : Set.{u_1} α → Set.{u_2} β},\n  @Function.Injective.{u_1 + 1, u_2 + 1} (Set.{u_1} α) (Set.{u_2} β) f →\n    @Eq.{u_2 + 1} (Set.{u_2} β)\n        (f (@EmptyCollection.emptyCollection.{u_1} (Set.{u_1} α) (@Set.instEmptyCollection.{u_1} α)))\n        (@EmptyCollection.emptyCollection.{u_2} (Set.{u_2} β) (@Set.instEmptyCollection.{u_2} β)) →\n      ∀ {s : Set.{u_1} α}, Iff (@Set.Nonempty.{u_2} β (f s)) (@Set.Nonempty.{u_1} α s)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-35317f0c4a2d56ee6098d27ebc4afa2b06ed21cf650fa015218f8a5adeab82f5","qualified_name":"Function.Injective.of_comp","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β} {g : γ → α},\n  @Function.Injective.{u_3, u_2} γ β (@Function.comp.{u_3, u_1, u_2} γ α β f g) → @Function.Injective.{u_3, u_1} γ α g"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-eec45570c0664f372422ec10cef8d22043cf7917cf3e9dd5d920b7096a130c30","qualified_name":"Function.Injective.of_comp_iff","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β},\n  @Function.Injective.{u_1, u_2} α β f →\n    ∀ (g : γ → α),\n      Iff (@Function.Injective.{u_3, u_2} γ β (@Function.comp.{u_3, u_1, u_2} γ α β f g))\n        (@Function.Injective.{u_3, u_1} γ α g)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-8eb54d8f46b8e11f042e116c6c5eefe67f2e9f8a8c1ea2c34e11286b2484fa4f","qualified_name":"Function.Injective.of_comp_iff'","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} (f : α → β) {g : γ → α},\n  @Function.Bijective.{u_3, u_1} γ α g →\n    Iff (@Function.Injective.{u_3, u_2} γ β (@Function.comp.{u_3, u_1, u_2} γ α β f g))\n      (@Function.Injective.{u_1, u_2} α β f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-1ccec937076f540bf7dad9b4e6c7aae4d1fbeaa7a21311d9a434257aba29824c","qualified_name":"Function.Injective.of_comp_right","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β} {g : γ → α},\n  @Function.Injective.{u_3, u_2} γ β (@Function.comp.{u_3, u_1, u_2} γ α β f g) →\n    @Function.Surjective.{u_3, u_1} γ α g → @Function.Injective.{u_1, u_2} α β f"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-b213ab70b562a185a8da11b490dbf3e4b4ceb0d27b4291998a43d363feb4b333","qualified_name":"Function.Injective.partialOrder","statement":"{α : Type u_2} →\n  {β : Type u_3} →\n    [inst : PartialOrder.{u_3} β] →\n      [inst_1 : LE.{u_2} α] →\n        [inst_2 : LT.{u_2} α] →\n          (f : α → β) →\n            @Function.Injective.{u_2 + 1, u_3 + 1} α β f →\n              (∀ {x y : α},\n                  Iff (@LE.le.{u_3} β (@Preorder.toLE.{u_3} β (@PartialOrder.toPreorder.{u_3} β inst)) (f x) (f y))\n                    (@LE.le.{u_2} α inst_1 x y)) →\n                (∀ {x y : α},\n                    Iff (@LT.lt.{u_3} β (@Preorder.toLT.{u_3} β (@PartialOrder.toPreorder.{u_3} β inst)) (f x) (f y))\n                      (@LT.lt.{u_2} α inst_2 x y)) →\n                  PartialOrder.{u_2} α"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-96ded93db85572481063f3a24242503d2ed9dd5cf83544fbf9f43abb1b2ee999","qualified_name":"Function.Injective.piMap","statement":"∀ {ι : Sort u_4} {α : ι → Sort u_5} {β : ι → Sort u_6} {f : (i : ι) → α i → β i},\n  (∀ (i : ι), @Function.Injective.{u_5, u_6} (α i) (β i) (f i)) →\n    @Function.Injective.{imax u_4 u_5, imax u_4 u_6} ((i : ι) → α i) ((i : ι) → β i) (@Pi.map.{u_4, u_5, u_6} ι α β f)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-afb71e0355306351ed041c232ac33d29a55139af0ec3cf1548026a9c620dbd78","qualified_name":"Function.Injective.preorder","statement":"{α : Type u_2} →\n  {β : Type u_3} →\n    [inst : Preorder.{u_3} β] →\n      [inst_1 : LE.{u_2} α] →\n        [inst_2 : LT.{u_2} α] →\n          (f : α → β) →\n            (∀ {x y : α}, Iff (@LE.le.{u_3} β (@Preorder.toLE.{u_3} β inst) (f x) (f y)) (@LE.le.{u_2} α inst_1 x y)) →\n              (∀ {x y : α},\n                  Iff (@LT.lt.{u_3} β (@Preorder.toLT.{u_3} β inst) (f x) (f y)) (@LT.lt.{u_2} α inst_2 x y)) →\n                Preorder.{u_2} α"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-8c32cc0fc04a2d902d7734bc1f53df55de16760f1a283bf29ffc808d32cf01f3","qualified_name":"Function.Injective.surjective_comp_right","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β} [Nonempty.{u_3} γ],\n  @Function.Injective.{u_1, u_2} α β f →\n    @Function.Surjective.{imax u_2 u_3, imax u_1 u_3} (β → γ) (α → γ) fun g => @Function.comp.{u_1, u_2, u_3} α β γ g f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-93df4615dbfb254b7d2665913cbbb4a128b3daefcf68d11f08211495a50994bd","qualified_name":"Function.Injective.surjective_comp_right'","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β},\n  @Function.Injective.{u_1, u_2} α β f →\n    ∀ (g₀ : β → γ),\n      @Function.Surjective.{imax u_2 u_3, imax u_1 u_3} (β → γ) (α → γ) fun g =>\n        @Function.comp.{u_1, u_2, u_3} α β γ g f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-d57266f3308e97ea64c84ee71e6cb2138dfb2a3a5a7c7a9bd0782a4569b6738e","qualified_name":"Function.Injective.trichotomous_onFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} (r : β → β → Prop) {f : α → β},\n  @Function.Injective.{u_1, u_2} α β f →\n    ∀ [@Std.Trichotomous.{u_2} β r], @Std.Trichotomous.{u_1} α (@Function.onFun.{u_1, u_2, 1} α β Prop r f)"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-d1c08e8ef39700a0c33ab925eb16c11f61c5ed22b310766ea6bce7f4048cc2ea","qualified_name":"Function.Injective2","statement":"{α : Sort u_1} → {β : Sort u_2} → {γ : Sort u_3} → (α → β → γ) → Prop"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-6f731ae17d13fb59fe0bafa613c0113c3dec1598a55dd0d88d179c6c3c6661d7","qualified_name":"Function.Injective2.eq_iff","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β → γ},\n  @Function.Injective2.{u_1, u_2, u_3} α β γ f →\n    ∀ {a₁ a₂ : α} {b₁ b₂ : β}, Iff (@Eq.{u_3} γ (f a₁ b₁) (f a₂ b₂)) (And (@Eq.{u_1} α a₁ a₂) (@Eq.{u_2} β b₁ b₂))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-323635aa285458b7f4da8471ed0c727037b9440c0fe33a9f60a12c1c2e57423d","qualified_name":"Function.Injective2.left","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β → γ},\n  @Function.Injective2.{u_1, u_2, u_3} α β γ f → ∀ (b : β), @Function.Injective.{u_1, u_3} α γ fun a => f a b"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-7b3bfbcc1b08d9adc900e5e0c1f6f5ce7df41faa626ba50de70460d17dc2a858","qualified_name":"Function.Injective2.left'","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β → γ},\n  @Function.Injective2.{u_1, u_2, u_3} α β γ f →\n    ∀ [Nonempty.{u_2} β], @Function.Injective.{u_1, imax u_2 u_3} α (β → γ) f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-bb69ab3930c0bd23ec32996bcb1f13a236f1ef728e2d380ba4f4ac0c81708b6b","qualified_name":"Function.Injective2.right","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β → γ},\n  @Function.Injective2.{u_1, u_2, u_3} α β γ f → ∀ (a : α), @Function.Injective.{u_2, u_3} β γ (f a)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-cac938ab1f8a83c2eb2622688ce75f6a1e93c3385b71bd2338ad1fa009bb4f73","qualified_name":"Function.Injective2.right'","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β → γ},\n  @Function.Injective2.{u_1, u_2, u_3} α β γ f →\n    ∀ [Nonempty.{u_1} α], @Function.Injective.{u_2, imax u_1 u_3} β (α → γ) fun b a => f a b"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f431363aa2b38c3eda52f387af2055b90ab41b0b28b81f8af16ebd71e7645515","qualified_name":"Function.Injective2.uncurry","statement":"∀ {α : Type u_4} {β : Type u_5} {γ : Type u_6} {f : α → β → γ},\n  @Function.Injective2.{u_4 + 1, u_5 + 1, u_6 + 1} α β γ f →\n    @Function.Injective.{max (u_5 + 1) (u_4 + 1), u_6 + 1} (Prod.{u_4, u_5} α β) γ\n      (@Function.uncurry.{u_4, u_5, u_6 + 1} α β γ f)"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-a41af8fa9d34d291df1fd3c4f037fcf7206e25c8f6b022e63c665840a13c50a5","qualified_name":"Function.Involutive","statement":"{α : Sort u_1} → (α → α) → Prop"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-e43b29cac8a19273003f1dce6027d5b3db81b0aec6aabab2b0adf5c19b6b2051","qualified_name":"Function.Involutive.bijective","statement":"∀ {α : Sort u} {f : α → α}, @Function.Involutive.{u} α f → @Function.Bijective.{u, u} α α f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-bdd4ccd2c34e1b424ef79006ce61b69525edc7d540212e3e8b9df4ba2ca42f50","qualified_name":"Function.Involutive.comp_self","statement":"∀ {α : Sort u} {f : α → α},\n  @Function.Involutive.{u} α f → @Eq.{u} (α → α) (@Function.comp.{u, u, u} α α α f f) (@id.{u} α)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-7e5c0b96a8c188b0b95ed19f38de892eae114ce2329a23174ab7f6a5dceb6960","qualified_name":"Function.Involutive.eq_iff","statement":"∀ {α : Sort u} {f : α → α}, @Function.Involutive.{u} α f → ∀ {x y : α}, Iff (@Eq.{u} α (f x) y) (@Eq.{u} α x (f y))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-2bfa9fb23f617a4c52254c5e940390fb5e4e39525ac9c5af4a86ac3b568cc51f","qualified_name":"Function.Involutive.exists_mem_and_apply_eq_iff","statement":"∀ {α : Type u} {f : α → α},\n  @Function.Involutive.{u + 1} α f →\n    ∀ (x : α) (l : List.{u} α),\n      Iff (∃ y, And (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l y) (@Eq.{u + 1} α (f y) x))\n        (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l (f x))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-98f9e331d598fe06dafe842661762a788b035f78702884612f40742f396c63a2","qualified_name":"Function.Involutive.injective","statement":"∀ {α : Sort u} {f : α → α}, @Function.Involutive.{u} α f → @Function.Injective.{u, u} α α f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-747bd5c948ee6374771edc169e601946c801e78699552961ca24da3c1a12d5b8","qualified_name":"Function.Involutive.ite_not","statement":"∀ {α : Sort u} {f : α → α},\n  @Function.Involutive.{u} α f →\n    ∀ (P : Prop) [inst : Decidable P] (x : α),\n      @Eq.{u} α (f (@ite.{u} α P inst x (f x))) (@ite.{u} α (Not P) (@instDecidableNot P inst) x (f x))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-771f3591883486aabd8b2e37bea30ac7b742bae0a7c675bc47488b85f7424663","qualified_name":"Function.Involutive.leftInverse","statement":"∀ {α : Sort u} {f : α → α}, @Function.Involutive.{u} α f → @Function.LeftInverse.{u, u} α α f f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-cd1d5c0316ad1043f3f9e372f90c4614bfd677939d6a6f80ad45227e1695ce6d","qualified_name":"Function.Involutive.leftInverse_iff","statement":"∀ {α : Sort u} {f : α → α},\n  @Function.Involutive.{u} α f → ∀ {g : α → α}, Iff (@Function.LeftInverse.{u, u} α α g f) (@Eq.{u} (α → α) g f)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d087dc5aa135e3a1d68da6b57cc7d3a32803f3ea28c6cb6d04e87e15bee311cd","qualified_name":"Function.Involutive.list_map","statement":"∀ {α : Type u} {f : α → α},\n  @Function.Involutive.{u + 1} α f → @Function.Involutive.{u + 1} (List.{u} α) (@List.map.{u, u} α α f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-7fcc538aebd278dcc375a7f630c6a7829c82f5628a1d89877aad4d60bde2b261","qualified_name":"Function.Involutive.rightInverse","statement":"∀ {α : Sort u} {f : α → α}, @Function.Involutive.{u} α f → @Function.RightInverse.{u, u} α α f f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-df581e8711f194fea0a7d95fa093e0289c60f6e59236da820a4b2d51247dc14f","qualified_name":"Function.Involutive.surjective","statement":"∀ {α : Sort u} {f : α → α}, @Function.Involutive.{u} α f → @Function.Surjective.{u, u} α α f"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-db9a6e0a8e2d1e702b98e039726961d14e488b2eb50859ddf48ca5cb5e95b83c","qualified_name":"Function.IsPartialInv","statement":"{α : Type u_4} → {β : Sort u_5} → (α → β) → (β → Option.{u_4} α) → Prop"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-e3cdc89bfb3aff2f01255d219c2a1e2f8f0a0e009a977ee6090c468a19356ea2","qualified_name":"Function.IsPartialInv.comp","statement":"∀ {α : Type u_4} {β : Type u_5} {γ : Sort u_6} {f : α → β} {g : β → Option.{u_4} α} {h : β → γ}\n  {i : γ → Option.{u_5} β},\n  @Function.IsPartialInv.{u_4, u_5 + 1} α β f g →\n    @Function.IsPartialInv.{u_5, u_6} β γ h i →\n      @Function.IsPartialInv.{u_4, u_6} α γ (@Function.comp.{u_4 + 1, u_5 + 1, u_6} α β γ h f) fun x =>\n        @Option.bind.{u_5, u_4} β α (i x) g"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-42857d8f99580323008d209bc15c1044e311f96470be4eb5165178e58bcc41e9","qualified_name":"Function.IsPartialInv.eq","statement":"∀ {α : Type u_4} {β : Sort u_5} {f : α → β} {g : β → Option.{u_4} α},\n  @Function.IsPartialInv.{u_4, u_5} α β f g →\n    ∀ (x : α), @Eq.{u_4 + 1} (Option.{u_4} α) (g (f x)) (@Option.some.{u_4} α x)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-5eccbfa2e945e8171fdec63ecb10d08f826977256133350b19ba4e2e87c367af","qualified_name":"Function.IsPartialInv.get_eq","statement":"∀ {α : Type u_4} {β : Sort u_5} {f : α → β} {g : β → Option.{u_4} α},\n  @Function.IsPartialInv.{u_4, u_5} α β f g →\n    ∀ (x : β) (h : @Eq.{1} Bool (@Option.isSome.{u_4} α (g x)) Bool.true),\n      @Eq.{u_5} β (f (@Option.get.{u_4} α (g x) h)) x"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-09e928bc4d3f2841506c234598f60e694e268badb6cb84695fcfeeec05c427a4","qualified_name":"Function.IsPartialInv.injective","statement":"∀ {α : Type u_4} {β : Sort u_5} {f : α → β} {g : β → Option.{u_4} α},\n  @Function.IsPartialInv.{u_4, u_5} α β f g → @Function.Injective.{u_4 + 1, u_5} α β f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f43564c27403e83cc6f90631c5a0b7891e39258f779fc8cd15ab895f76e69077","qualified_name":"Function.IsPartialInv.surjective_getD","statement":"∀ {α : Type u_4} {β : Sort u_5} {f : α → β} {g : β → Option.{u_4} α},\n  @Function.IsPartialInv.{u_4, u_5} α β f g →\n    ∀ (x : α), @Function.Surjective.{u_5, u_4 + 1} β α fun x_1 => @Option.getD.{u_4} α (g x_1) x"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-1e4cba9453f08c5fc87b35882d9fb770e0389157e1baaf223a822964294318ed","qualified_name":"Function.LeftInverse.cast_eq","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : β → Sort v} {f : α → β} {g : β → α} (h : @Function.LeftInverse.{u_1, u_2} α β g f)\n  (C : (a : α) → γ (f a)) (a : α), @Eq.{v} (γ (f a)) (@cast.{v} (γ (f (g (f a)))) (γ (f a)) ⋯ (C (g (f a)))) (C a)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-06d0528a387d25d26e87df0396148ba3a516a779d56029dd89ee8a855cdb456a","qualified_name":"Function.LeftInverse.comp","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β} {g : β → α} {h : β → γ} {i : γ → β},\n  @Function.LeftInverse.{u_2, u_1} β α f g →\n    @Function.LeftInverse.{u_3, u_2} γ β h i →\n      @Function.LeftInverse.{u_3, u_1} γ α (@Function.comp.{u_1, u_2, u_3} α β γ h f)\n        (@Function.comp.{u_3, u_2, u_1} γ β α g i)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-255266877060b22bfad13aefe0b0beec55ba75e0010996e88feac60ce8fcc6e5","qualified_name":"Function.LeftInverse.comp_eq_id","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {g : β → α},\n  @Function.LeftInverse.{u_2, u_1} β α f g → @Eq.{u_2} (β → β) (@Function.comp.{u_2, u_1, u_2} β α β f g) (@id.{u_2} β)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-437569d0835ef2ce2e4267bfa19daf92a379f0f128bcc406683881e0f53ecf26","qualified_name":"Function.LeftInverse.eq","statement":"∀ {α : Sort u_1} {β : Sort u_2} {g : β → α} {f : α → β},\n  @Function.LeftInverse.{u_1, u_2} α β g f → ∀ (x : α), @Eq.{u_1} α (g (f x)) x"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-a636bed1f4c0e4d536aa6a411a08e39d1f4363ef5d5abffd56e9e7370c97d174","qualified_name":"Function.LeftInverse.eq_rec_eq","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : β → Sort v} {f : α → β} {g : β → α} (h : @Function.LeftInverse.{u_1, u_2} α β g f)\n  (C : (a : α) → γ (f a)) (a : α),\n  @Eq.{v} (γ (f a)) (@Eq.rec.{v, u_2} β (f (g (f a))) (fun x x_1 => γ x) (C (g (f a))) (f a) ⋯) (C a)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f3bf1d93a80169eed97360a77215fc67b7968ee6449a5f96a89ed9f454402e4d","qualified_name":"Function.LeftInverse.eq_rec_on_eq","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : β → Sort v} {f : α → β} {g : β → α} (h : @Function.LeftInverse.{u_1, u_2} α β g f)\n  (C : (a : α) → γ (f a)) (a : α),\n  @Eq.{v} (γ (f a)) (@Eq.recOn.{v, u_2} β (f (g (f a))) (fun x x_1 => γ x) (f a) ⋯ (C (g (f a)))) (C a)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-cb1590fd77f7a401820a475851a4f830dab64bd1c5aa07d63a4b20aa3c7e5c9b","qualified_name":"Function.LeftInverse.eq_rightInverse","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {g₁ g₂ : β → α},\n  @Function.LeftInverse.{u_1, u_2} α β g₁ f →\n    @Function.RightInverse.{u_1, u_2} α β g₂ f → @Eq.{imax u_2 u_1} (β → α) g₁ g₂"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-58e4d96a16ddca477cd3949ba550513c479d683cde78636c538e6d7c2a1a7ade","qualified_name":"Function.LeftInverse.list_map","statement":"∀ {α : Type u} {β : Type v} {f : α → β} {g : β → α},\n  @Function.LeftInverse.{v + 1, u + 1} β α f g →\n    @Function.LeftInverse.{v + 1, u + 1} (List.{v} β) (List.{u} α) (@List.map.{u, v} α β f) (@List.map.{v, u} β α g)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-743cdc3494d7f2ba5d6d1e190af6443ee57d057fb7f43af356190f27570f5fbb","qualified_name":"Function.LeftInverse.rightInverse","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {g : β → α},\n  @Function.LeftInverse.{u_1, u_2} α β g f → @Function.RightInverse.{u_2, u_1} β α f g"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f16920d5939eb10c1401137f2d937628b3600ab6198273f82fcc36527febe8dd","qualified_name":"Function.LeftInverse.rightInverse_of_injective","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {g : β → α},\n  @Function.LeftInverse.{u_2, u_1} β α f g →\n    @Function.Injective.{u_1, u_2} α β f → @Function.RightInverse.{u_2, u_1} β α f g"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-4f109129a8943a33c89cfbb3b5783e2b16ec4f6befdedb25784317a916a39bf6","qualified_name":"Function.LeftInverse.rightInverse_of_surjective","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {g : β → α},\n  @Function.LeftInverse.{u_2, u_1} β α f g →\n    @Function.Surjective.{u_2, u_1} β α g → @Function.RightInverse.{u_2, u_1} β α f g"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-c612933b1a51c1656d0ff0f12941b220aa75f1d4ad644c0c5c13762a22bf37d3","qualified_name":"Function.LeftInverse.surjective","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {g : β → α},\n  @Function.LeftInverse.{u_2, u_1} β α f g → @Function.Surjective.{u_1, u_2} α β f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-fb0debb46e900e814ca6f26bfe50efab540a954e632597bf9337a9041f6fb373","qualified_name":"Function.RightInverse.comp","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β} {g : β → α} {h : β → γ} {i : γ → β},\n  @Function.RightInverse.{u_2, u_1} β α f g →\n    @Function.RightInverse.{u_3, u_2} γ β h i →\n      @Function.RightInverse.{u_3, u_1} γ α (@Function.comp.{u_1, u_2, u_3} α β γ h f)\n        (@Function.comp.{u_3, u_2, u_1} γ β α g i)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-0be1f2b2856af4a68327ad121db02f09b64d50dded4d060853673d05f84a3071","qualified_name":"Function.RightInverse.comp_eq_id","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {g : β → α},\n  @Function.RightInverse.{u_2, u_1} β α f g → @Eq.{u_1} (α → α) (@Function.comp.{u_1, u_2, u_1} α β α g f) (@id.{u_1} α)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-bf82248f4647355e8262c42bf470c95e10ab02ee3d01cf6a980a48e1fac69f0b","qualified_name":"Function.RightInverse.eq","statement":"∀ {α : Sort u_1} {β : Sort u_2} {g : β → α} {f : α → β},\n  @Function.RightInverse.{u_1, u_2} α β g f → ∀ (x : β), @Eq.{u_2} β (f (g x)) x"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-a0ca0e482096c133d8d406799ec5edc79680a961b8912b3de3fc812a390457ec","qualified_name":"Function.RightInverse.injective","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {g : β → α},\n  @Function.RightInverse.{u_2, u_1} β α f g → @Function.Injective.{u_1, u_2} α β f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-00e29846be392eaae800ae1bce92d19809013f6fca8862717217d3887e118cb0","qualified_name":"Function.RightInverse.leftInverse","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {g : β → α},\n  @Function.RightInverse.{u_1, u_2} α β g f → @Function.LeftInverse.{u_2, u_1} β α f g"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-6f31e10f52cb46c37632d6a4241f21ccf9b1c04c84564b92ea0a6b3069068aa3","qualified_name":"Function.RightInverse.leftInverse_of_injective","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {g : β → α},\n  @Function.RightInverse.{u_2, u_1} β α f g →\n    @Function.Injective.{u_2, u_1} β α g → @Function.LeftInverse.{u_2, u_1} β α f g"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-bf9d89c962f4b6a0f924acb0ac0bb633880ae3e971d99b97da5efa0513de7194","qualified_name":"Function.RightInverse.leftInverse_of_surjective","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {g : β → α},\n  @Function.RightInverse.{u_2, u_1} β α f g →\n    @Function.Surjective.{u_1, u_2} α β f → @Function.LeftInverse.{u_2, u_1} β α f g"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-1902a2a7fdb7fcf6d83f09acd4b44d2b439c0a15c277260e045167dc651ce02f","qualified_name":"Function.RightInverse.list_map","statement":"∀ {α : Type u} {β : Type v} {f : α → β} {g : β → α},\n  @Function.RightInverse.{v + 1, u + 1} β α f g →\n    @Function.RightInverse.{v + 1, u + 1} (List.{v} β) (List.{u} α) (@List.map.{u, v} α β f) (@List.map.{v, u} β α g)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-4ef40b257365527399c984a03d7031818e018892bb5f357ce0eed2806a99c78b","qualified_name":"Function.Surjective.bijective₂_of_injective","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β} {g : γ → α},\n  @Function.Surjective.{u_1, u_2} α β f →\n    @Function.Surjective.{u_3, u_1} γ α g →\n      @Function.Injective.{u_3, u_2} γ β (@Function.comp.{u_3, u_1, u_2} γ α β f g) →\n        And (@Function.Bijective.{u_1, u_2} α β f) (@Function.Bijective.{u_3, u_1} γ α g)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-9711458bc25b3ebc176cb3595a46c1ffbccfef89ca315697fadff686f61264bf","qualified_name":"Function.Surjective.comp_left","statement":"∀ {α : Sort u} {β : Sort v} {γ : Sort w} {g : β → γ},\n  @Function.Surjective.{v, w} β γ g →\n    @Function.Surjective.{imax u v, imax u w} (α → β) (α → γ) fun x => @Function.comp.{u, v, w} α β γ g x"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-7cbc7b4ebcead6b61077bc0b6e5d9ddacd9c0438f03390a75ffc651b44f21573","qualified_name":"Function.Surjective.exists","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β},\n  @Function.Surjective.{u_1, u_2} α β f → ∀ {p : β → Prop}, Iff (∃ y, p y) (∃ x, p (f x))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-1673fb0fc880fd7e9592d4e6ade2260ebd2324b9bd40e2cf3511e7de89881dad","qualified_name":"Function.Surjective.exists₂","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β},\n  @Function.Surjective.{u_1, u_2} α β f → ∀ {p : β → β → Prop}, Iff (∃ y₁ y₂, p y₁ y₂) (∃ x₁ x₂, p (f x₁) (f x₂))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-1854977db7f84714cc678bbca82feeb06f2e6c12801aa408f1d51e33827c8a5a","qualified_name":"Function.Surjective.exists₃","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β},\n  @Function.Surjective.{u_1, u_2} α β f →\n    ∀ {p : β → β → β → Prop}, Iff (∃ y₁ y₂ y₃, p y₁ y₂ y₃) (∃ x₁ x₂ x₃, p (f x₁) (f x₂) (f x₃))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-cadc688586afedb57a57c21ad592e4cf4deae1602eec02464f4540c86b58862f","qualified_name":"Function.Surjective.forall","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β},\n  @Function.Surjective.{u_1, u_2} α β f → ∀ {p : β → Prop}, Iff (∀ (y : β), p y) (∀ (x : α), p (f x))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-59c5669edfb8f2d585678d7869aafa0e164e0ba021551de0f74890d91c7b2546","qualified_name":"Function.Surjective.forall₂","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β},\n  @Function.Surjective.{u_1, u_2} α β f →\n    ∀ {p : β → β → Prop}, Iff (∀ (y₁ y₂ : β), p y₁ y₂) (∀ (x₁ x₂ : α), p (f x₁) (f x₂))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-9557fc4878e3b1d549f347d583183d2165bccc0726caffcf6685307a48f7198a","qualified_name":"Function.Surjective.forall₃","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β},\n  @Function.Surjective.{u_1, u_2} α β f →\n    ∀ {p : β → β → β → Prop}, Iff (∀ (y₁ y₂ y₃ : β), p y₁ y₂ y₃) (∀ (x₁ x₂ x₃ : α), p (f x₁) (f x₂) (f x₃))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-31972057660a1f7bccbdf94adaaee33e4b932e461754c7a7d65480f0aa9ab82f","qualified_name":"Function.Surjective.hasRightInverse","statement":"∀ {α : Sort u} {β : Sort v} {f : α → β}, @Function.Surjective.{u, v} α β f → @Function.HasRightInverse.{u, v} α β f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-3088fec3313c3aeb0003229025cad223948fcfbe2854ccaa87a8d7c01518f68a","qualified_name":"Function.Surjective.injective_comp_right","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β},\n  @Function.Surjective.{u_1, u_2} α β f →\n    @Function.Injective.{imax u_2 u_3, imax u_1 u_3} (β → γ) (α → γ) fun g => @Function.comp.{u_1, u_2, u_3} α β γ g f"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-66685bf19f20746471d03e2ffbfb04b00f2da64514da25a263b4e6677d04cc29","qualified_name":"Function.Surjective.list_map","statement":"∀ {α : Type u} {β : Type v} {f : α → β},\n  @Function.Surjective.{u + 1, v + 1} α β f →\n    @Function.Surjective.{u + 1, v + 1} (List.{u} α) (List.{v} β) (@List.map.{u, v} α β f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-9da4b7c885d585b870decd81a94f26c39781f6056f46641154f568fc5ee4c9c4","qualified_name":"Function.Surjective.of_comp","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β} {g : γ → α},\n  @Function.Surjective.{u_3, u_2} γ β (@Function.comp.{u_3, u_1, u_2} γ α β f g) → @Function.Surjective.{u_1, u_2} α β f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-20e2b7d5d5277c22e9e8b0cf197b40ea0c152c274ba927923184224244846a37","qualified_name":"Function.Surjective.of_comp_iff","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} (f : α → β) {g : γ → α},\n  @Function.Surjective.{u_3, u_1} γ α g →\n    Iff (@Function.Surjective.{u_3, u_2} γ β (@Function.comp.{u_3, u_1, u_2} γ α β f g))\n      (@Function.Surjective.{u_1, u_2} α β f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-6380fefbc40f416cd1ed953a85f497155ed3d230b96d3aac31d9165a6708aa22","qualified_name":"Function.Surjective.of_comp_iff'","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β},\n  @Function.Bijective.{u_1, u_2} α β f →\n    ∀ (g : γ → α),\n      Iff (@Function.Surjective.{u_3, u_2} γ β (@Function.comp.{u_3, u_1, u_2} γ α β f g))\n        (@Function.Surjective.{u_3, u_1} γ α g)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-ea9c5e84a5373a21d48120326ca5e2b0b3f35df62b4a7d75e9e3fc4bd9f6bf04","qualified_name":"Function.Surjective.of_comp_left","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β} {g : γ → α},\n  @Function.Surjective.{u_3, u_2} γ β (@Function.comp.{u_3, u_1, u_2} γ α β f g) →\n    @Function.Injective.{u_1, u_2} α β f → @Function.Surjective.{u_3, u_1} γ α g"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-38206e25f7f7148d5b6e9faaf28f83e8b0545f77a616804a55074c2ed0fae052","qualified_name":"Function.Surjective.piMap","statement":"∀ {ι : Sort u_1} {α : ι → Sort u_2} {β : ι → Sort u_3} {f : (i : ι) → α i → β i},\n  (∀ (i : ι), @Function.Surjective.{u_2, u_3} (α i) (β i) (f i)) →\n    @Function.Surjective.{imax u_1 u_2, imax u_1 u_3} ((i : ι) → α i) ((i : ι) → β i) (@Pi.map.{u_1, u_2, u_3} ι α β f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-99ba955387b8d6b69829401032bd23f57884a649e7409d541932da22d830a709","qualified_name":"Function.Surjective.right_cancellable","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β},\n  @Function.Surjective.{u_1, u_2} α β f →\n    ∀ {g₁ g₂ : β → γ},\n      Iff\n        (@Eq.{imax u_1 u_3} (α → γ) (@Function.comp.{u_1, u_2, u_3} α β γ g₁ f)\n          (@Function.comp.{u_1, u_2, u_3} α β γ g₂ f))\n        (@Eq.{imax u_2 u_3} (β → γ) g₁ g₂)"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-21c1cdb0322ef0cc2ecd3e77fb98ba24d3447e78182826d71ad87f10d3403cf2","qualified_name":"Function._aux_Mathlib_Logic_Function_Basic___unexpand_Function_HasUncurry_uncurry_1","statement":"Lean.PrettyPrinter.Unexpander"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-e621e240d3e78eff83917cd776acded5f9a60b1821f3818a98de3620da796eb9","qualified_name":"Function.apply_extend","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {δ : Sort u_4} {g : α → γ} (F : γ → δ) (f : α → β) (e' : β → γ) (b : β),\n  @Eq.{u_4} δ (F (@Function.extend.{u_1, u_2, u_3} α β γ f g e' b))\n    (@Function.extend.{u_1, u_2, u_4} α β δ f (@Function.comp.{u_1, u_3, u_4} α γ δ F g)\n      (@Function.comp.{u_2, u_3, u_4} β γ δ F e') b)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-bdd14ca8734e7311e0e2e849597fb38c0d32288f272b4d1f5855a8bebc9e265c","qualified_name":"Function.apply_invFun_apply","statement":"∀ {α : Type u_3} {β : Type u_4} {f : α → β} {a : α},\n  @Eq.{u_4 + 1} β (f (@Function.invFun.{u_3 + 1, u_4 + 1} α β ⋯ f (f a))) (f a)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-fbbdfec41e425cc2e1dadd004c68cc3802269adf81a709127d13294a089408e7","qualified_name":"Function.apply_update","statement":"∀ {ι : Sort u_1} [inst : DecidableEq.{u_1} ι] {α : ι → Sort u_2} {β : ι → Sort u_3} (f : (i : ι) → α i → β i)\n  (g : (i : ι) → α i) (i : ι) (v : α i) (j : ι),\n  @Eq.{u_3} (β j) (f j (@Function.update.{u_1, u_2} ι α inst g i v j))\n    (@Function.update.{u_1, u_3} ι β inst (fun k => f k (g k)) i (f i v) j)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-506626533f313be8722d255ee813015653c2ff747906ff3379a273d5878db860","qualified_name":"Function.apply_update₂","statement":"∀ {ι : Sort u_1} [inst : DecidableEq.{u_1} ι] {α : ι → Sort u_2} {β : ι → Sort u_3} {γ : ι → Sort u_4}\n  (f : (i : ι) → α i → β i → γ i) (g : (i : ι) → α i) (h : (i : ι) → β i) (i : ι) (v : α i) (w : β i) (j : ι),\n  @Eq.{u_4} (γ j) (f j (@Function.update.{u_1, u_2} ι α inst g i v j) (@Function.update.{u_1, u_3} ι β inst h i w j))\n    (@Function.update.{u_1, u_4} ι γ inst (fun k => f k (g k) (h k)) i (f i v w) j)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-dd3131417487f1622c725e2b45da20e78232c9da0da9c90deaa290586504855d","qualified_name":"Function.bijective_iff_existsUnique","statement":"∀ {α : Sort u_1} {β : Sort u_2} (f : α → β),\n  Iff (@Function.Bijective.{u_1, u_2} α β f) (∀ (b : β), @ExistsUnique.{u_1} α fun a => @Eq.{u_2} β (f a) b)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-b64dea2de41a575c254728810af308fb44b33a4feac9f8aecbf7d4c1891fa331","qualified_name":"Function.bijective_iff_has_inverse","statement":"∀ {α : Sort u} {β : Sort v} {f : α → β},\n  Iff (@Function.Bijective.{u, v} α β f)\n    (∃ g, And (@Function.LeftInverse.{u, v} α β g f) (@Function.RightInverse.{u, v} α β g f))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-c5b2f51de367f2a57c4182b8661f911d74be4ca2b3f725f130a09cb17412ce32","qualified_name":"Function.bijective_of_subsingleton","statement":"∀ {α : Sort u_1} [Subsingleton.{u_1} α] (f : α → α), @Function.Bijective.{u_1, u_1} α α f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-7ebc786d6cb1229c7420f4cefc710b75e69706c8cdac2cde236f97aefc348b90","qualified_name":"Function.bijective_of_subsingleton'","statement":"∀ {α : Sort u} {β : Sort v} [Nonempty.{u} α] [Subsingleton.{u} α] [Subsingleton.{v} β] (f : α → β),\n  @Function.Bijective.{u, v} α β f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-99e95f1acc3d2fc1088550e05deb3c42e617b73b61ea3423928a5a86e0a0cc97","qualified_name":"Function.cantor_injective","statement":"∀ {α : Type u_4} (f : Set.{u_4} α → α), Not (@Function.Injective.{u_4 + 1, u_4 + 1} (Set.{u_4} α) α f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-0b79f913e14817c0463f0c4f39dfdc28ab53fb3ecb828c6f514a7a2e01c0d09f","qualified_name":"Function.cantor_surjective","statement":"∀ {α : Type u_4} (f : α → Set.{u_4} α), Not (@Function.Surjective.{u_4 + 1, u_4 + 1} α (Set.{u_4} α) f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-e6b68df000f46424d5e8396a4e55988ac2334303f9987aaa41bfa71d04e97322","qualified_name":"Function.comp_surjInv","statement":"∀ {α : Sort u} {β : Sort v} {f : α → β} (hf : @Function.Surjective.{u, v} α β f),\n  @Eq.{v} (β → β) (@Function.comp.{v, u, v} β α β f (@Function.surjInv.{u, v} α β f hf)) (@id.{v} β)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-3b1a879ab9455cbd044ee904a41c57e91089308e3a646b77deda81b8a3505243","qualified_name":"Function.comp_update","statement":"∀ {α : Sort u} [inst : DecidableEq.{u} α] {α' : Sort u_1} {β : Sort u_2} (f : α' → β) (g : α → α') (i : α) (v : α'),\n  @Eq.{imax u u_2} (α → β)\n    (@Function.comp.{u, u_1, u_2} α α' β f (@Function.update.{u, u_1} α (fun a => α') inst g i v))\n    (@Function.update.{u, u_2} α (fun a => β) inst (@Function.comp.{u, u_1, u_2} α α' β f g) i (f v))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-13650642e26f0b730aea3403aa13217291f7d866e85307aa75afb0e56704eb9a","qualified_name":"Function.const_def","statement":"∀ {α : Sort u_1} {β : Sort u_2} {y : β}, @Eq.{imax u_1 u_2} (α → β) (fun x => y) (@Function.const.{u_2, u_1} β α y)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-ea11d9e19b1d5742e73994f64b6c515869ec01c3157be81e8e08c98f6dad548d","qualified_name":"Function.const_inj","statement":"∀ {α : Sort u_1} {β : Sort u_2} [Nonempty.{u_1} α] {y₁ y₂ : β},\n  Iff (@Eq.{imax u_1 u_2} (α → β) (@Function.const.{u_2, u_1} β α y₁) (@Function.const.{u_2, u_1} β α y₂))\n    (@Eq.{u_2} β y₁ y₂)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-c8f8db17d410d966ab61e1db65a3a886b41ac52b40bb5204fa86fc3038093790","qualified_name":"Function.const_injective","statement":"∀ {α : Sort u_1} {β : Sort u_2} [Nonempty.{u_1} α],\n  @Function.Injective.{u_2, imax u_1 u_2} β (α → β) (@Function.const.{u_2, u_1} β α)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-5abcaa8017bfac7011b8ce6be7ee2c622d6d4785f19e66c96af1f4a81133fda5","qualified_name":"Function.const_le_const","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [Nonempty.{u_3 + 1} β] {a b : α},\n  Iff\n    (@LE.le.{max u_2 u_3} (β → α) (@Pi.hasLe.{u_3, u_2} β (fun a => α) fun i => @Preorder.toLE.{u_2} α inst)\n      (@Function.const.{u_2 + 1, u_3 + 1} α β a) (@Function.const.{u_2 + 1, u_3 + 1} α β b))\n    (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-ebc8bc2aed92ea090c8c03ce7596bccc61d3ba9a528125eaa05bed517fcdacfe","qualified_name":"Function.const_lt_const","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [Nonempty.{u_3 + 1} β] {a b : α},\n  Iff\n    (@LT.lt.{max u_2 u_3} (β → α)\n      (@Preorder.toLT.{max u_2 u_3} (β → α) (@Pi.preorder.{u_3, u_2} β (fun a => α) fun i => inst))\n      (@Function.const.{u_2 + 1, u_3 + 1} α β a) (@Function.const.{u_2 + 1, u_3 + 1} α β b))\n    (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) a b)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-319222fa3a4473d62a665fbdc2fc05bd0f1c4c06e4bd0e14e64ead86e8c40855","qualified_name":"Function.curry_injective","statement":"∀ {α : Type u_1} {β : Type u_2} {γ : Sort u_3},\n  @Function.Injective.{imax (max (u_2 + 1) (u_1 + 1)) u_3, imax (u_1 + 1) (u_2 + 1) u_3} (Prod.{u_1, u_2} α β → γ)\n    (α → β → γ) (@Function.curry.{u_1, u_2, u_3} α β γ)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f49a8a1fac7943b4cdfa37e213920f58bc7a2cff2ee82947b3a65d3405e44dc3","qualified_name":"Function.curry_update","statement":"∀ {α : Type u_1} {α' : Type u_2} {β : Type u_3} [inst : DecidableEq.{u_1 + 1} α] [inst_1 : DecidableEq.{u_2 + 1} α']\n  (f : Prod.{u_1, u_2} α α' → β) (aa' : Prod.{u_1, u_2} α α') (b : β),\n  @Eq.{max (max (u_1 + 1) (u_2 + 1)) (u_3 + 1)} (α → α' → β)\n    (@Function.curry.{u_1, u_2, u_3 + 1} α α' β\n      (@Function.update.{max (u_2 + 1) (u_1 + 1), u_3 + 1} (Prod.{u_1, u_2} α α') (fun a => β)\n        (fun a b => @instDecidableEqProd.{u_1, u_2} α α' inst inst_1 a b) f aa' b))\n    (@Function.update.{u_1 + 1, max (u_2 + 1) (u_3 + 1)} α (fun a => α' → β) inst\n      (@Function.curry.{u_1, u_2, u_3 + 1} α α' β f) (@Prod.fst.{u_1, u_2} α α' aa')\n      (@Function.update.{u_2 + 1, u_3 + 1} α' (fun a => β) inst_1\n        (@Function.curry.{u_1, u_2, u_3 + 1} α α' β f (@Prod.fst.{u_1, u_2} α α' aa')) (@Prod.snd.{u_1, u_2} α α' aa')\n        b))"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-af41cf51d0094183b44550537c7deb4d9d19ac64f5e6b165ef2f734990f00d0f","qualified_name":"Function.decidableEqPFun","statement":"(p : Prop) →\n  [Decidable p] →\n    (α : p → Type u_4) → [(hp : p) → DecidableEq.{u_4 + 1} (α hp)] → DecidableEq.{u_4 + 1} ((hp : p) → α hp)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-a19ef2d341bb52d0c24390ce75030ede8dd167d22f1e9b5dbbf045cefd25d0bd","qualified_name":"Function.eq_const_iff","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {b : β},\n  Iff (@Eq.{imax u_1 u_2} (α → β) f (@Function.const.{u_2, u_1} β α b)) (∀ (a : α), @Eq.{u_2} β (f a) b)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-d47ea351a1211f99b90a882538036b8361b5a1abb114889996e235058b3126b3","qualified_name":"Function.eq_update_iff","statement":"∀ {α : Sort u} {β : α → Sort v} [inst : DecidableEq.{u} α] {a : α} {b : β a} {f g : (a : α) → β a},\n  Iff (@Eq.{imax u v} ((a : α) → β a) g (@Function.update.{u, v} α β inst f a b))\n    (And (@Eq.{v} (β a) (g a) b) (∀ (x : α), @Ne.{u} α x a → @Eq.{v} (β x) (g x) (f x)))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-14b60ff2bfff0d64bfffc5c273c417179a1e567baadd88c9c59c6b7ec779cfb8","qualified_name":"Function.eq_update_self_iff","statement":"∀ {α : Sort u} {β : α → Sort v} [inst : DecidableEq.{u} α] {f : (a : α) → β a} {a : α} {b : β a},\n  Iff (@Eq.{imax u v} ((a : α) → β a) f (@Function.update.{u, v} α β inst f a b)) (@Eq.{v} (β a) (f a) b)"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-418843a424c0f23aa2f923adf6a993833ec291acc8e6722aedcb1b7e83c8df6c","qualified_name":"Function.eval","statement":"{α : Sort u_1} → {β : α → Sort u_4} → (x : α) → ((x : α) → β x) → β x"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f6c7985287f74f5db35c4bd4398205633da434eb25f2f09e55831603cc4348a1","qualified_name":"Function.eval_apply","statement":"∀ {α : Sort u_1} {β : α → Sort u_4} (x : α) (f : (x : α) → β x),\n  @Eq.{u_4} (β x) (@Function.eval.{u_1, u_4} α β x f) (f x)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-ae59cbff1e832131c72e910b501de60acf245bee84eaac6565150fe95d866a28","qualified_name":"Function.exists_fixed_point_of_surjective","statement":"∀ {α : Type u_4} {β : Type u_5} (f : α → α → β),\n  @Function.Surjective.{u_4 + 1, max (u_4 + 1) (u_5 + 1)} α (α → β) f → ∀ (g : β → β), ∃ x, @Eq.{u_5 + 1} β (g x) x"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-030e713f41ba2afab5b6b2b16cc7ed282ee264bc2389246d7580182877ee9182","qualified_name":"Function.exists_update_iff","statement":"∀ {α : Sort u} {β : α → Sort v} [inst : DecidableEq.{u} α] (f : (a : α) → β a) {a : α} {b : β a}\n  (p : (a : α) → β a → Prop),\n  Iff (∃ x, p x (@Function.update.{u, v} α β inst f a b x)) (Or (p a b) (∃ x, And (@Ne.{u} α x a) (p x (f x))))"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-da3dd2dec213cad23ea0d705c3f1c9c78f5468ae99634148a30b219b7980cde3","qualified_name":"Function.extend","statement":"{α : Sort u_1} → {β : Sort u_2} → {γ : Sort u_3} → (α → β) → (α → γ) → (β → γ) → β → γ"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-af398fac19d3c4101164c01592aed76cd577044cad9eae0869e760921f3b9ce6","qualified_name":"Function.extend_apply'","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β} (g : α → γ) (e' : β → γ) (b : β),\n  Not (∃ a, @Eq.{u_2} β (f a) b) → @Eq.{u_3} γ (@Function.extend.{u_1, u_2, u_3} α β γ f g e' b) (e' b)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-8fca2c25addf4dca4f048de6c7348b34ed719c78f7da1aab5199520bc622884c","qualified_name":"Function.extend_comp","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β},\n  @Function.Injective.{u_1, u_2} α β f →\n    ∀ (g : α → γ) (e' : β → γ),\n      @Eq.{imax u_1 u_3} (α → γ)\n        (@Function.comp.{u_1, u_2, u_3} α β γ (@Function.extend.{u_1, u_2, u_3} α β γ f g e') f) g"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-562be634da91110abb48d55124425c5fddc62b746e1b7df7164493bdb7018d50","qualified_name":"Function.extend_const","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} (f : α → β) (c : γ),\n  @Eq.{imax u_2 u_3} (β → γ) (@Function.extend.{u_1, u_2, u_3} α β γ f (fun x => c) fun x => c) fun x => c"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-38fcd500be14a5c8d870282e73fe79b82bd6830b2954678d42f74992f540939d","qualified_name":"Function.extend_def","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} (f : α → β) (g : α → γ) (e' : β → γ) (b : β)\n  [inst : Decidable (∃ a, @Eq.{u_2} β (f a) b)],\n  @Eq.{u_3} γ (@Function.extend.{u_1, u_2, u_3} α β γ f g e' b)\n    (@dite.{u_3} γ (∃ a, @Eq.{u_2} β (f a) b) inst\n      (fun h => g (@Classical.choose.{u_1} α (fun x => @Eq.{u_2} β (f x) b) h)) fun h => e' b)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-ecec116351529fa46192aea4de8f84cf53dce131d155f2e53e9c5a413789e91c","qualified_name":"Function.extend_id","statement":"∀ {α : Sort u_1} {γ : Sort u_3} (g e' : α → γ),\n  @Eq.{imax u_1 u_3} (α → γ) (@Function.extend.{u_1, u_1, u_3} α α γ (@id.{u_1} α) g e') g"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-d704c00ee8aac6845cd995e01b911bd89dd96e3b58ad438d1466180bfc8c9b89","qualified_name":"Function.extend_injective","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β},\n  @Function.Injective.{u_1, u_2} α β f →\n    ∀ (e' : β → γ),\n      @Function.Injective.{imax u_1 u_3, imax u_2 u_3} (α → γ) (β → γ) fun g =>\n        @Function.extend.{u_1, u_2, u_3} α β γ f g e'"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-01c8c888369d966d1f2ad81e1598beb7aea9ac618b5863d68b802ac6a5257638","qualified_name":"Function.factorsThrough_iff","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {f : α → β} (g : α → γ) [Nonempty.{u_3} γ],\n  Iff (@Function.FactorsThrough.{u_1, u_2, u_3} α β γ g f)\n    (∃ e, @Eq.{imax u_1 u_3} (α → γ) g (@Function.comp.{u_1, u_2, u_3} α β γ e f))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-b7ab3ac6b2946d0f4f908bb11be64fef5f85fed521c7f37546b23bc6d3a3dda9","qualified_name":"Function.flip_curry","statement":"∀ {α : Type u_1} {β : Type u_2} {γ : Sort u_3} (f : Prod.{u_1, u_2} α β → γ),\n  @Eq.{imax (u_2 + 1) (u_1 + 1) u_3} (β → α → γ)\n    (@flip.{u_1 + 1, u_2 + 1, u_3} α β γ (@Function.curry.{u_1, u_2, u_3} α β γ f))\n    (@Function.curry.{u_2, u_1, u_3} β α γ\n      (@Function.comp.{max (u_1 + 1) (u_2 + 1), max (u_2 + 1) (u_1 + 1), u_3} (Prod.{u_2, u_1} β α)\n        (Prod.{u_1, u_2} α β) γ f (@Prod.swap.{u_2, u_1} β α)))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-b3e754046a01b9829385bbda002c88cfde1fe4c054d2746962a968fa6f9f1ae2","qualified_name":"Function.forall_update_iff","statement":"∀ {α : Sort u} {β : α → Sort v} [inst : DecidableEq.{u} α] (f : (a : α) → β a) {a : α} {b : β a}\n  (p : (a : α) → β a → Prop),\n  Iff (∀ (x : α), p x (@Function.update.{u, v} α β inst f a b x)) (And (p a b) (∀ (x : α), @Ne.{u} α x a → p x (f x)))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-486fd7aa636de3e26d4265c919adece8e734e6380c43997952a48a3c6819c87a","qualified_name":"Function.funext_iff_of_subsingleton","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} [Subsingleton.{u_1} α] {g : α → β} (x y : α),\n  Iff (@Eq.{u_2} β (f x) (g y)) (@Eq.{imax u_1 u_2} (α → β) f g)"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-5b5708ce6f272ed82e7d0cca734e04b53ec843138bfdad51594dc079457e3f27","qualified_name":"Function.hasUncurryBase","statement":"{α : Type u_1} → {β : Type u_2} → Function.HasUncurry.{max u_1 u_2, u_1, u_2} (α → β) α β"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-60cf3d33527e106741d327e7e9f1a454ac63d9b14a3ecab28786a67817a8a150","qualified_name":"Function.hasUncurryInduction","statement":"{α : Type u_1} →\n  {β : Type u_2} →\n    {γ : Type u_3} →\n      {δ : Type u_4} →\n        [Function.HasUncurry.{u_2, u_3, u_4} β γ δ] →\n          Function.HasUncurry.{max u_1 u_2, max u_3 u_1, u_4} (α → β) (Prod.{u_1, u_3} α γ) δ"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-44cd7d7ae45e647befc41fd3c11ea455e4c13ea2dd2647f0e6942f4315305f30","qualified_name":"Function.hfunext","statement":"∀ {α α' : Sort u} {β : α → Sort v} {β' : α' → Sort v} {f : (a : α) → β a} {f' : (a : α') → β' a},\n  @Eq.{u + 1} (Sort u) α α' →\n    (∀ (a : α) (a' : α'), @HEq.{u} α a α' a' → @HEq.{v} (β a) (f a) (β' a') (f' a')) →\n      @HEq.{imax u v} ((a : α) → β a) f ((a : α') → β' a) f'"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-1f9325b97645ea6a08b072d73874a2a6fb79659ca9c2d227a6b98cbb6269e9ff","qualified_name":"Function.injective_comp_left_iff","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} [Nonempty.{u_1} α] {g : β → γ},\n  Iff\n    (@Function.Injective.{imax u_1 u_2, imax u_1 u_3} (α → β) (α → γ) fun x => @Function.comp.{u_1, u_2, u_3} α β γ g x)\n    (@Function.Injective.{u_2, u_3} β γ g)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-22d7a6f6f22bb5302dd0e02fc16ec595c78a44fb8b3bf53798fcac9b27a6322a","qualified_name":"Function.injective_comp_right_iff_surjective","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {γ : Type u_4} [Nontrivial.{u_4} γ],\n  Iff\n    (@Function.Injective.{max u_2 (u_4 + 1), max u_1 (u_4 + 1)} (β → γ) (α → γ) fun g =>\n      @Function.comp.{u_1, u_2, u_4 + 1} α β γ g f)\n    (@Function.Surjective.{u_1, u_2} α β f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-31870933aa61ef2d3c7443579b1c79e7062a82fb5d7ab46829668be7f4a5f889","qualified_name":"Function.injective_iff_hasLeftInverse","statement":"∀ {α : Sort u_1} {β : Sort u_2} [Nonempty.{u_1} α] {f : α → β},\n  Iff (@Function.Injective.{u_1, u_2} α β f) (@Function.HasLeftInverse.{u_1, u_2} α β f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-bb8d7c9a8300c0fb2bed0b91f3fcc6d50d912d0ed4938112d98042bc46042895","qualified_name":"Function.injective_of_isPartialInv","statement":"∀ {α : Type u_4} {β : Sort u_5} {f : α → β} {g : β → Option.{u_4} α},\n  @Function.IsPartialInv.{u_4, u_5} α β f g → @Function.Injective.{u_4 + 1, u_5} α β f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f58cd7d861ff5f7ef55b13562c983cacb5e3045a6338c84875d4f76749e5ff00","qualified_name":"Function.injective_of_isPartialInv_right","statement":"∀ {α : Type u_4} {β : Sort u_5} {f : α → β} {g : β → Option.{u_4} α},\n  @Function.IsPartialInv.{u_4, u_5} α β f g →\n    ∀ (x y : β) (b : α),\n      @Membership.mem.{u_4, u_4} α (Option.{u_4} α) (@Option.instMembership.{u_4} α) (g x) b →\n        @Membership.mem.{u_4, u_4} α (Option.{u_4} α) (@Option.instMembership.{u_4} α) (g y) b → @Eq.{u_5} β x y"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-30258a3e258715c18e5af19cf5e5db4e34e7dcde17bab49ad7f7fb93400d364d","qualified_name":"Function.injective_of_subsingleton","statement":"∀ {α : Sort u_1} {β : Sort u_2} [Subsingleton.{u_1} α] (f : α → β), @Function.Injective.{u_1, u_2} α β f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-7dd7acb5fcb2387bb4e33df9653eb365fec696418aa60c9249bd59865e3241a0","qualified_name":"Function.injective_surjInv","statement":"∀ {α : Sort u} {β : Sort v} {f : α → β} (h : @Function.Surjective.{u, v} α β f),\n  @Function.Injective.{v, u} β α (@Function.surjInv.{u, v} α β f h)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-fc272551e55187a4fc0f0d5afe52760fba4fd348bf121674d8541af48f82e66a","qualified_name":"Function.instAntisymmSwapProp","statement":"∀ {α : Sort u_1} (r : α → α → Prop) [@Std.Antisymm.{u_1} α r],\n  @Std.Antisymm.{u_1} α (@Function.swap.{u_1, u_1, 1} α α (fun a a_1 => Prop) r)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-0d27faf053d5f2909ec80a09b71f72616b1b0623e046ab611847587067b2f81e","qualified_name":"Function.instAsymmOnFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} (r : β → β → Prop) (f : α → β) [@Std.Asymm.{u_2} β r],\n  @Std.Asymm.{u_1} α (@Function.onFun.{u_1, u_2, 1} α β Prop r f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-c3025662c0b372fce969f9bfc100196bc28ab08ede90783baeec2fa2ecfa0cdd","qualified_name":"Function.instAsymmSwapProp","statement":"∀ {α : Sort u_1} (r : α → α → Prop) [@Std.Asymm.{u_1} α r],\n  @Std.Asymm.{u_1} α (@Function.swap.{u_1, u_1, 1} α α (fun a a_1 => Prop) r)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-b08e4a741cd83a1bfe1ed35a88731808a8e1d395246e40cfcbbd51fb8b0e9c04","qualified_name":"Function.instIrreflOnFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} (r : β → β → Prop) (f : α → β) [@Std.Irrefl.{u_2} β r],\n  @Std.Irrefl.{u_1} α (@Function.onFun.{u_1, u_2, 1} α β Prop r f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-5875bfdfcdbd862a3117d2a6d06117c7ff4050f9acdb134f2a2de8756cd45a7e","qualified_name":"Function.instIrreflSwapProp","statement":"∀ {α : Sort u_1} (r : α → α → Prop) [@Std.Irrefl.{u_1} α r],\n  @Std.Irrefl.{u_1} α (@Function.swap.{u_1, u_1, 1} α α (fun a a_1 => Prop) r)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-b4fd366b370d00b0af2b374294f568930f8e434d9f32914dd8260bf8e0f9a82b","qualified_name":"Function.instIsEquivOnFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} (r : β → β → Prop) (f : α → β) [IsEquiv.{u_2} β r],\n  IsEquiv.{u_1} α (@Function.onFun.{u_1, u_2, 1} α β Prop r f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-e2010a54de170b87c810d445c3d444e9755945a5bd2a9559bdd7c4d47f302aba","qualified_name":"Function.instIsEquivSwapProp","statement":"∀ {α : Sort u_1} (r : α → α → Prop) [IsEquiv.{u_1} α r],\n  IsEquiv.{u_1} α (@Function.swap.{u_1, u_1, 1} α α (fun a a_1 => Prop) r)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-e37dea721e9cc4f6713c01c6b01946cffdc9d8cd5b0ee86f83e231344a41ddac","qualified_name":"Function.instIsLinearOrderSwapProp","statement":"∀ {α : Sort u_1} (r : α → α → Prop) [IsLinearOrder.{u_1} α r],\n  IsLinearOrder.{u_1} α (@Function.swap.{u_1, u_1, 1} α α (fun a a_1 => Prop) r)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-494914a915ea5dfc619593c1fb89779d4e66421148a9ac0ddeb8839b4a499302","qualified_name":"Function.instIsPartialOrderSwapProp","statement":"∀ {α : Sort u_1} (r : α → α → Prop) [IsPartialOrder.{u_1} α r],\n  IsPartialOrder.{u_1} α (@Function.swap.{u_1, u_1, 1} α α (fun a a_1 => Prop) r)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-40e6cf4ddd0d91df1dfd6d55c926ac82bc0df844b8bb6462c4e62e5900cabee7","qualified_name":"Function.instIsPreorderOnFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} (r : β → β → Prop) (f : α → β) [IsPreorder.{u_2} β r],\n  IsPreorder.{u_1} α (@Function.onFun.{u_1, u_2, 1} α β Prop r f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-3f38689157525fa76cf96f7f936d804f59db1f4f5ea1a261a4c36003a5950465","qualified_name":"Function.instIsPreorderSwapProp","statement":"∀ {α : Sort u_1} (r : α → α → Prop) [IsPreorder.{u_1} α r],\n  IsPreorder.{u_1} α (@Function.swap.{u_1, u_1, 1} α α (fun a a_1 => Prop) r)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-1a6c9644545731ccc13c3209d80cc2bdfb85e08052acb0d47382aae4df28e553","qualified_name":"Function.instIsStrictOrderOnFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} (r : β → β → Prop) (f : α → β) [IsStrictOrder.{u_2} β r],\n  IsStrictOrder.{u_1} α (@Function.onFun.{u_1, u_2, 1} α β Prop r f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-acb295694a10752d074c5d35421b4a1a48931b6dd190e040da8c02ab0d015168","qualified_name":"Function.instIsStrictOrderSwapProp","statement":"∀ {α : Sort u_1} (r : α → α → Prop) [IsStrictOrder.{u_1} α r],\n  IsStrictOrder.{u_1} α (@Function.swap.{u_1, u_1, 1} α α (fun a a_1 => Prop) r)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-974f1036d998832386b8054791509aad4669dab0e58476c249948be9b9631753","qualified_name":"Function.instIsStrictTotalOrderSwapProp","statement":"∀ {α : Sort u_1} (r : α → α → Prop) [IsStrictTotalOrder.{u_1} α r],\n  IsStrictTotalOrder.{u_1} α (@Function.swap.{u_1, u_1, 1} α α (fun a a_1 => Prop) r)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-5b0ba403b9322e88f64047a57bd09e0af143bd78c28afbc0d3da07caee6193f7","qualified_name":"Function.instIsStrictWeakOrderOnFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} (r : β → β → Prop) (f : α → β) [IsStrictWeakOrder.{u_2} β r],\n  IsStrictWeakOrder.{u_1} α (@Function.onFun.{u_1, u_2, 1} α β Prop r f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-d1d9dc6ba0f7869f7f5ddb8c263766196d49a10c084dadf9e641c0a7a674fbc1","qualified_name":"Function.instIsStrictWeakOrderSwapProp","statement":"∀ {α : Sort u_1} (r : α → α → Prop) [IsStrictWeakOrder.{u_1} α r],\n  IsStrictWeakOrder.{u_1} α (@Function.swap.{u_1, u_1, 1} α α (fun a a_1 => Prop) r)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-189b639bcdd029d7dcde347b0de8ef5e9f9f0781a997ccc4eb1563142190f685","qualified_name":"Function.instIsTransOnFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} (r : β → β → Prop) (f : α → β) [IsTrans.{u_2} β r],\n  IsTrans.{u_1} α (@Function.onFun.{u_1, u_2, 1} α β Prop r f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-68cd5ed0b4812d91e860b89b3e1abbe9e4b262c1684a6209f090c2211c76b5b0","qualified_name":"Function.instIsTransSwapProp","statement":"∀ {α : Sort u_1} (r : α → α → Prop) [IsTrans.{u_1} α r],\n  IsTrans.{u_1} α (@Function.swap.{u_1, u_1, 1} α α (fun a a_1 => Prop) r)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-b00bc4087ba291809d2c74eb2fdb665ed0f64c978daa1cfcaea158f1736a6646","qualified_name":"Function.instReflOnFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} (r : β → β → Prop) (f : α → β) [@Std.Refl.{u_2} β r],\n  @Std.Refl.{u_1} α (@Function.onFun.{u_1, u_2, 1} α β Prop r f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-4b1161edab74fe8f39f694695d385ae8ee06207beb07f0e1c2c73cfb8fe66144","qualified_name":"Function.instReflSwapProp","statement":"∀ {α : Sort u_1} (r : α → α → Prop) [@Std.Refl.{u_1} α r],\n  @Std.Refl.{u_1} α (@Function.swap.{u_1, u_1, 1} α α (fun a a_1 => Prop) r)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-eaa7de16c5f8366c54590054592cc73cf4318f8b58c855f8b6b6f052da5c3166","qualified_name":"Function.instSymmOnFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} (r : β → β → Prop) (f : α → β) [@Std.Symm.{u_2} β r],\n  @Std.Symm.{u_1} α (@Function.onFun.{u_1, u_2, 1} α β Prop r f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f52e10ef0e2d79d24819d582c10b69f2e772ae93d5b0f68ac25ed17f6bb79706","qualified_name":"Function.instSymmSwapProp","statement":"∀ {α : Sort u_1} (r : α → α → Prop) [@Std.Symm.{u_1} α r],\n  @Std.Symm.{u_1} α (@Function.swap.{u_1, u_1, 1} α α (fun a a_1 => Prop) r)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-88ab3eac880f5664ec80cd83c70272229ebb4d16f3868fcb0143bc1cd062eeb1","qualified_name":"Function.instTotalOnFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} (r : β → β → Prop) (f : α → β) [@Std.Total.{u_2} β r],\n  @Std.Total.{u_1} α (@Function.onFun.{u_1, u_2, 1} α β Prop r f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-00d3e052a25c7b16f90e489b17083e01a897f74c51158f61ee1253b030001a55","qualified_name":"Function.instTotalSwapProp","statement":"∀ {α : Sort u_1} (r : α → α → Prop) [@Std.Total.{u_1} α r],\n  @Std.Total.{u_1} α (@Function.swap.{u_1, u_1, 1} α α (fun a a_1 => Prop) r)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-aeaada5d2bd2de13c31a72e6163d47577cd13beaf6a257aa69e3124f23725113","qualified_name":"Function.instTrichotomousSwapProp","statement":"∀ {α : Sort u_1} (r : α → α → Prop) [@Std.Trichotomous.{u_1} α r],\n  @Std.Trichotomous.{u_1} α (@Function.swap.{u_1, u_1, 1} α α (fun a a_1 => Prop) r)"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-b3a9ef3e947a679b5cbdef02cabb1ae40386b9187e80a94f7daa71e03ed7c61f","qualified_name":"Function.invFun","statement":"{α : Sort u} → {β : Sort u_3} → [Nonempty.{u} α] → (α → β) → β → α"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-d2414f77316493a988cb48700afb22e622a3a91f461072a202d9211e70101435","qualified_name":"Function.invFun_comp","statement":"∀ {α : Sort u_1} {β : Sort u_2} [inst : Nonempty.{u_1} α] {f : α → β},\n  @Function.Injective.{u_1, u_2} α β f →\n    @Eq.{u_1} (α → α) (@Function.comp.{u_1, u_2, u_1} α β α (@Function.invFun.{u_1, u_2} α β inst f) f) (@id.{u_1} α)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f66a77e10c7bf317d2254a6c83ba87cd0afcddd6bd99c67a6dd84829ec549655","qualified_name":"Function.invFun_eq","statement":"∀ {α : Sort u_1} {β : Sort u_2} [inst : Nonempty.{u_1} α] {f : α → β} {b : β},\n  (∃ a, @Eq.{u_2} β (f a) b) → @Eq.{u_2} β (f (@Function.invFun.{u_1, u_2} α β inst f b)) b"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-6c7b85044bd83a809f2946283edfbab583bd5b61de717b27ee41ee854c56f49a","qualified_name":"Function.invFun_eq_of_injective_of_rightInverse","statement":"∀ {α : Sort u_1} {β : Sort u_2} [inst : Nonempty.{u_1} α] {f : α → β} {g : β → α},\n  @Function.Injective.{u_1, u_2} α β f →\n    @Function.RightInverse.{u_1, u_2} α β g f → @Eq.{imax u_2 u_1} (β → α) (@Function.invFun.{u_1, u_2} α β inst f) g"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-34ee384e05842842d77ce0b20a3917fa3f5de0efc43974300498775d7939d5cd","qualified_name":"Function.invFun_neg","statement":"∀ {α : Sort u_1} {β : Sort u_2} [inst : Nonempty.{u_1} α] {f : α → β} {b : β},\n  Not (∃ a, @Eq.{u_2} β (f a) b) →\n    @Eq.{u_1} α (@Function.invFun.{u_1, u_2} α β inst f b) (@Classical.choice.{u_1} α inst)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f472d67ba5ad3da5689f614fe8343b1f769c90595a98d0e3f2a21bc397b212b3","qualified_name":"Function.invFun_surjective","statement":"∀ {α : Sort u_1} {β : Sort u_2} [inst : Nonempty.{u_1} α] {f : α → β},\n  @Function.Injective.{u_1, u_2} α β f → @Function.Surjective.{u_2, u_1} β α (@Function.invFun.{u_1, u_2} α β inst f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-90ea7395e41e0943bd069cdb559b3bae1f36607c02144c97f3efd28c9322a379","qualified_name":"Function.isPartialInv_left","statement":"∀ {α : Type u_4} {β : Sort u_5} {f : α → β} {g : β → Option.{u_4} α},\n  @Function.IsPartialInv.{u_4, u_5} α β f g →\n    ∀ (x : α), @Eq.{u_4 + 1} (Option.{u_4} α) (g (f x)) (@Option.some.{u_4} α x)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-7eae413a529c9773876abd62abdf0bcd5821a2eb4c6b67e06372d295398759dc","qualified_name":"Function.leftInverse_iff_comp","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {g : β → α},\n  Iff (@Function.LeftInverse.{u_2, u_1} β α f g)\n    (@Eq.{u_2} (β → β) (@Function.comp.{u_2, u_1, u_2} β α β f g) (@id.{u_2} β))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-cbabd45904a1846baa2a32093a842c002ff069aa29b24a4339ded3b781f5c5e7","qualified_name":"Function.leftInverse_invFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} [inst : Nonempty.{u_1} α] {f : α → β},\n  @Function.Injective.{u_1, u_2} α β f → @Function.LeftInverse.{u_1, u_2} α β (@Function.invFun.{u_1, u_2} α β inst f) f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-4e96045710f4c18e65f8391c93a882cbd15adcf10aaa39b8675c883b714401de","qualified_name":"Function.leftInverse_surjInv","statement":"∀ {α : Sort u} {β : Sort v} {f : α → β} (hf : @Function.Bijective.{u, v} α β f),\n  @Function.LeftInverse.{u, v} α β (@Function.surjInv.{u, v} α β f ⋯) f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-9005004136ea7bba0412749372cb7b4d81bdd55db9f960dfd3738ab4a1d2dfa3","qualified_name":"Function.ne_iff","statement":"∀ {α : Sort u_1} {β : α → Sort u_4} {f₁ f₂ : (a : α) → β a},\n  Iff (@Ne.{imax u_1 u_4} ((a : α) → β a) f₁ f₂) (∃ a, @Ne.{u_4} (β a) (f₁ a) (f₂ a))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-3061ff29c5def25e11cd3fc10e68307c1d663e0288894614f0ab167fdde7b362","qualified_name":"Function.ne_update_self_iff","statement":"∀ {α : Sort u} {β : α → Sort v} [inst : DecidableEq.{u} α] {f : (a : α) → β a} {a : α} {b : β a},\n  Iff (@Ne.{imax u v} ((a : α) → β a) f (@Function.update.{u, v} α β inst f a b)) (@Ne.{v} (β a) (f a) b)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-2002c60aae49735fa3ee116aaec3e0a314cd42ed0953c7ffe1976477f7ce1ef9","qualified_name":"Function.not_bijective","statement":"@Function.Bijective.{1, 1} Prop Prop Not"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-963980dfcd94a9f722f6d243d2af4ad4cb4e3843e967cfe2a687d7e5825d9ab2","qualified_name":"Function.not_injective","statement":"@Function.Injective.{1, 1} Prop Prop Not"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-59fe9200a21bd129bee4665f6f6b32bfcddc3645c19f4196effd143e953a5725","qualified_name":"Function.not_injective_const","statement":"∀ {α : Type u_4} {β : Type u_5} [Nontrivial.{u_4} α] {b : β},\n  Not (@Function.Injective.{u_4 + 1, u_5 + 1} α β fun x => b)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-fd0596343d92446743dd53cf4d8197a91f06a5cd088cf22a4add738b41246663","qualified_name":"Function.not_injective_iff","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β},\n  Iff (Not (@Function.Injective.{u_1, u_2} α β f)) (∃ a b, And (@Eq.{u_2} β (f a) (f b)) (@Ne.{u_1} α a b))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-7cdce51ffa083d65aac551956093689142d0dce6d2c9ad2b34f60e0e814df34f","qualified_name":"Function.not_involutive","statement":"@Function.Involutive.{1} Prop Not"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-aa9427f9e8b97d7ef5414171d10d6544d8402be8d357c733607ca291db5bd37c","qualified_name":"Function.not_surjective","statement":"@Function.Surjective.{1, 1} Prop Prop Not"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-1af88bfe2dd1c06f71ae9c2fe3d088bfbc88f3f62e86a2a299c9f99a1f169b4e","qualified_name":"Function.not_surjective_Type","statement":"∀ {α : Type u} (f : α → Type (max u v)), Not (@Function.Surjective.{u + 1, max (u + 2) (v + 2)} α (Type (max u v)) f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-259d1a14c82efb1226cd072ed97994bac1c333d277c2c8314ef018667a533704","qualified_name":"Function.onFun_apply","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} (f : β → β → γ) (g : α → β) (a b : α),\n  @Eq.{u_3} γ (@Function.onFun.{u_1, u_2, u_3} α β γ f g a b) (f (g a) (g b))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-68e365b060749e472d04fe48e3c9929b30e783c8aa016fa980ea6207202e416f","qualified_name":"Function.onFun_comp_eq","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {δ : Sort u_4} (f : α → α → γ) (g : β → α) (h : δ → β),\n  @Eq.{imax u_4 u_4 u_3} (δ → δ → γ)\n    (@Function.onFun.{u_4, u_1, u_3} δ α γ f (@Function.comp.{u_4, u_2, u_1} δ β α g h))\n    (@Function.onFun.{u_4, u_2, u_3} δ β γ (@Function.onFun.{u_2, u_1, u_3} β α γ f g) h)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-dfda2f21105a8c90ee2e4d60e75b38a96315c6f23ae063f69c72e653d2e94d2b","qualified_name":"Function.onFun_onFun_eq","statement":"∀ {α : Sort u_1} {β : Sort u_2} {γ : Sort u_3} {δ : Sort u_4} (f : α → α → γ) (g : β → α) (h : δ → β),\n  @Eq.{imax u_4 u_4 u_3} (δ → δ → γ)\n    (@Function.onFun.{u_4, u_2, u_3} δ β γ (@Function.onFun.{u_2, u_1, u_3} β α γ f g) h)\n    (@Function.onFun.{u_4, u_1, u_3} δ α γ f (@Function.comp.{u_4, u_2, u_1} δ β α g h))"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-c1d4f4ceff4b6de93c45a2e52c80a7510b25ba6ed6190d47d31905dd341cff70","qualified_name":"Function.partialInv","statement":"{α : Type u_4} → {β : Sort u_5} → (α → β) → β → Option.{u_4} α"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-b388b3a9112e0964c727ecff6ce5ac43fd144d1de7d3a81b4b200404693b5e5f","qualified_name":"Function.partialInv_left","statement":"∀ {α : Type u_4} {β : Sort u_5} {f : α → β},\n  @Function.Injective.{u_4 + 1, u_5} α β f →\n    ∀ (x : α), @Eq.{u_4 + 1} (Option.{u_4} α) (@Function.partialInv.{u_4, u_5} α β f (f x)) (@Option.some.{u_4} α x)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-83ab405b925bf96e39c52ef8e69a7183b2d1045203288a154892b11282ee07f8","qualified_name":"Function.partialInv_of_injective","statement":"∀ {α : Type u_4} {β : Sort u_5} {f : α → β},\n  @Function.Injective.{u_4 + 1, u_5} α β f →\n    @Function.IsPartialInv.{u_4, u_5} α β f (@Function.partialInv.{u_4, u_5} α β f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-db1633e5d4a93d862cf0ce4532d7a0452961cd1537327b40f366d209c22b23ca","qualified_name":"Function.pred_update","statement":"∀ {α : Sort u} {β : α → Sort v} [inst : DecidableEq.{u} α] (P : ⦃a : α⦄ → β a → Prop) (f : (a : α) → β a) (a' : α)\n  (v : β a') (a : α),\n  Iff (@P a (@Function.update.{u, v} α β inst f a' v a))\n    (Or (And (@Eq.{u} α a a') (@P a' v)) (And (@Ne.{u} α a a') (@P a (f a))))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-807485c15e7af0a58b2ddc4c8dd8cae0030278ab39384889f33bd21acd7cf7b2","qualified_name":"Function.rec_update","statement":"∀ {ι : Sort u_1} {κ : Sort u_2} {α : κ → Sort u_3} [inst : DecidableEq.{u_1} ι] [inst_1 : DecidableEq.{u_2} κ]\n  {ctor : ι → κ},\n  @Function.Injective.{u_1, u_2} ι κ ctor →\n    ∀ (recursor : ((i : ι) → α (ctor i)) → (i : κ) → α i),\n      (∀ (f : (i : ι) → α (ctor i)) (i : ι), @Eq.{u_3} (α (ctor i)) (recursor f (ctor i)) (f i)) →\n        (∀ (f₁ f₂ : (i : ι) → α (ctor i)) (k : κ),\n            (∀ (i : ι), @Ne.{u_2} κ (ctor i) k) → @Eq.{u_3} (α k) (recursor f₁ k) (recursor f₂ k)) →\n          ∀ (f : (i : ι) → α (ctor i)) (i : ι) (x : α (ctor i)),\n            @Eq.{imax u_2 u_3} ((i : κ) → α i)\n              (recursor (@Function.update.{u_1, u_3} ι (fun i => α (ctor i)) inst f i x))\n              (@Function.update.{u_2, u_3} κ α inst_1 (recursor f) (ctor i) x)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-6ae25ebea68f14aff296a10172b7f7e4bfe21eba07a74f713c5ecee3cae57256","qualified_name":"Function.rightInverse_iff_comp","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {g : β → α},\n  Iff (@Function.RightInverse.{u_2, u_1} β α f g)\n    (@Eq.{u_1} (α → α) (@Function.comp.{u_1, u_2, u_1} α β α g f) (@id.{u_1} α))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f8c58712357322f2b5e9b8f08387e5ba5ddc674e53083cd3a906903158a21d1b","qualified_name":"Function.rightInverse_invFun","statement":"∀ {α : Sort u_1} {β : Sort u_2} [inst : Nonempty.{u_1} α] {f : α → β},\n  @Function.Surjective.{u_1, u_2} α β f →\n    @Function.RightInverse.{u_1, u_2} α β (@Function.invFun.{u_1, u_2} α β inst f) f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-5908190531cc308f9d2d937c226babe14f938466972724ea1e849959e1aa4a2a","qualified_name":"Function.rightInverse_surjInv","statement":"∀ {α : Sort u} {β : Sort v} {f : α → β} (hf : @Function.Surjective.{u, v} α β f),\n  @Function.RightInverse.{u, v} α β (@Function.surjInv.{u, v} α β f hf) f"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-c54e00e635231a05be8d6f530c09c3751177b9096bba418bbf9f6b55d601c585","qualified_name":"Function.sometimes","statement":"{α : Sort u_1} → {β : Sort u_2} → [Nonempty.{u_2} β] → (α → β) → β"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-0ff22a6307c21f82a6a85574caaeaa1c95e6ab566d694bc7f7caa82dfd3afcff","qualified_name":"Function.sometimes_eq","statement":"∀ {p : Prop} {α : Sort u_1} [inst : Nonempty.{u_1} α] (f : p → α) (a : p),\n  @Eq.{u_1} α (@Function.sometimes.{0, u_1} p α inst f) (f a)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-0f813ba57a3dfabf9d11193453702da6de3fbaa2095cd3022fed793bfc84d4d2","qualified_name":"Function.sometimes_spec","statement":"∀ {p : Prop} {α : Sort u_1} [inst : Nonempty.{u_1} α] (P : α → Prop) (f : p → α) (a : p),\n  P (f a) → P (@Function.sometimes.{0, u_1} p α inst f)"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-d985d10325d5eb1352bc7c9b5de9051722b777724858c03f6055f1ac849e2ad9","qualified_name":"Function.surjInv","statement":"{α : Sort u} → {β : Sort v} → {f : α → β} → @Function.Surjective.{u, v} α β f → β → α"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-136b28eae3dd03acc11f104826d55b3ef6fbfce6d06aa3d28ceb35c8f7cce5e8","qualified_name":"Function.surjInv_eq","statement":"∀ {α : Sort u} {β : Sort v} {f : α → β} (h : @Function.Surjective.{u, v} α β f) (b : β),\n  @Eq.{v} β (f (@Function.surjInv.{u, v} α β f h b)) b"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-229a8a72aa67c798cf9cef0cf4dfea8c8f9b94907ce8dde61b73e9610e732259","qualified_name":"Function.surjective_comp_left_iff","statement":"∀ {α : Sort u} {β : Sort v} {γ : Sort w} [Nonempty.{u} α] {g : β → γ},\n  Iff (@Function.Surjective.{imax u v, imax u w} (α → β) (α → γ) fun x => @Function.comp.{u, v, w} α β γ g x)\n    (@Function.Surjective.{v, w} β γ g)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f8c2dad90dfd99e287b34ca3e202509ee6833211bedea25746bb8c571df7c268","qualified_name":"Function.surjective_comp_right_iff_injective","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β} {γ : Type u_4} [Nontrivial.{u_4} γ],\n  Iff\n    (@Function.Surjective.{max u_2 (u_4 + 1), max u_1 (u_4 + 1)} (β → γ) (α → γ) fun g =>\n      @Function.comp.{u_1, u_2, u_4 + 1} α β γ g f)\n    (@Function.Injective.{u_1, u_2} α β f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-3e27b3867e0120f0b25889af3910c3d854bae2e3dc727d84133214a9ad2edca3","qualified_name":"Function.surjective_eval","statement":"∀ {α : Sort u} {β : α → Sort v} [h : ∀ (a : α), Nonempty.{v} (β a)] (a : α),\n  @Function.Surjective.{imax u v, v} ((x : α) → β x) (β a) (@Function.eval.{u, v} α β a)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-bb514942b7332f52e48c4d4d428fa3cc40d48decfae6fde9bc6bc961b328ba75","qualified_name":"Function.surjective_iff_hasRightInverse","statement":"∀ {α : Sort u} {β : Sort v} {f : α → β},\n  Iff (@Function.Surjective.{u, v} α β f) (@Function.HasRightInverse.{u, v} α β f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-51533a9d9a03e2eb7ef1af3f3bc56ab32333daf0984b24cc421dc971da009a64","qualified_name":"Function.surjective_of_right_cancellable_Prop","statement":"∀ {α : Sort u_1} {β : Sort u_2} {f : α → β},\n  (∀ (g₁ g₂ : β → Prop),\n      @Eq.{max 1 u_1} (α → Prop) (@Function.comp.{u_1, u_2, 1} α β Prop g₁ f)\n          (@Function.comp.{u_1, u_2, 1} α β Prop g₂ f) →\n        @Eq.{max 1 u_2} (β → Prop) g₁ g₂) →\n    @Function.Surjective.{u_1, u_2} α β f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-5b1cc94678580479ca4c9aea6bf753cbbe89f557b0ca33e64eff27c9082907c8","qualified_name":"Function.surjective_to_subsingleton","statement":"∀ {α : Sort u} {β : Sort v} [na : Nonempty.{u} α] [Subsingleton.{v} β] (f : α → β), @Function.Surjective.{u, v} α β f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-722ea3b83ed291a664d3a750e3a50c6e06057e8dbda0c486556e3ce035acec75","qualified_name":"Function.swap_ge","statement":"∀ {α : Type u_4} [inst : LE.{u_4} α],\n  @Eq.{u_4 + 1} (α → α → Prop)\n    (@Function.swap.{u_4 + 1, u_4 + 1, 1} α α (fun x1 x2 => Prop) fun x1 x2 => @GE.ge.{u_4} α inst x1 x2) fun x1 x2 =>\n    @LE.le.{u_4} α inst x1 x2"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-1d4ad3bb243726472c59101c52303121a823a72fe45ad8e1f950f68bd0668cbb","qualified_name":"Function.swap_gt","statement":"∀ {α : Type u_4} [inst : LT.{u_4} α],\n  @Eq.{u_4 + 1} (α → α → Prop)\n    (@Function.swap.{u_4 + 1, u_4 + 1, 1} α α (fun x1 x2 => Prop) fun x1 x2 => @GT.gt.{u_4} α inst x1 x2) fun x1 x2 =>\n    @LT.lt.{u_4} α inst x1 x2"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-de461aadc9ffd4ad72c8cf61ea4051dd44aa84c11a4606feded5727222e85cfc","qualified_name":"Function.swap_le","statement":"∀ {α : Type u_4} [inst : LE.{u_4} α],\n  @Eq.{u_4 + 1} (α → α → Prop)\n    (@Function.swap.{u_4 + 1, u_4 + 1, 1} α α (fun x1 x2 => Prop) fun x1 x2 => @LE.le.{u_4} α inst x1 x2) fun x1 x2 =>\n    @GE.ge.{u_4} α inst x1 x2"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-24305fb8cd636b1298641fa82756ade05f2f6e1f79b4b57dfcc8373ec26706e0","qualified_name":"Function.swap_lt","statement":"∀ {α : Type u_4} [inst : LT.{u_4} α],\n  @Eq.{u_4 + 1} (α → α → Prop)\n    (@Function.swap.{u_4 + 1, u_4 + 1, 1} α α (fun x1 x2 => Prop) fun x1 x2 => @LT.lt.{u_4} α inst x1 x2) fun x1 x2 =>\n    @GT.gt.{u_4} α inst x1 x2"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-1e55c980816a4204dea5317cee9d98b54b01fdde2fb74e6dea7164432379bf9b","qualified_name":"Function.symm_apply_eq_iff","statement":"∀ {α : Sort u_1} {f : α → α},\n  Iff (@Std.Symm.{u_1} α fun x1 x2 => @Eq.{u_1} α (f x1) x2) (@Function.Involutive.{u_1} α f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-a6d222731fd222f90e7c7f16379ce53fb926f7e2fb451936b7cadbf430fe1986","qualified_name":"Function.symmetric_apply_eq_iff","statement":"∀ {α : Sort u_1} {f : α → α},\n  Iff (@Std.Symm.{u_1} α fun x1 x2 => @Eq.{u_1} α (f x1) x2) (@Function.Involutive.{u_1} α f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f4fa8c4a273c9fbc115f52e5c3275f4e4cb8dce5fbe6a54b39667860d0b3fb4e","qualified_name":"Function.uncurry_def","statement":"∀ {α : Type u_1} {β : Type u_2} {γ : Sort u_3} (f : α → β → γ),\n  @Eq.{imax (max (u_2 + 1) (u_1 + 1)) u_3} (Prod.{u_1, u_2} α β → γ) (@Function.uncurry.{u_1, u_2, u_3} α β γ f)\n    fun p => f (@Prod.fst.{u_1, u_2} α β p) (@Prod.snd.{u_1, u_2} α β p)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-37aeeee16001617e14081607e891b82726c4ad4fbe0718b963be8d4d830b75a2","qualified_name":"Function.uncurry_flip","statement":"∀ {α : Type u_1} {β : Type u_2} {γ : Sort u_3} (f : α → β → γ),\n  @Eq.{imax (max (u_1 + 1) (u_2 + 1)) u_3} (Prod.{u_2, u_1} β α → γ)\n    (@Function.uncurry.{u_2, u_1, u_3} β α γ (@flip.{u_1 + 1, u_2 + 1, u_3} α β γ f))\n    (@Function.comp.{max (u_1 + 1) (u_2 + 1), max (u_2 + 1) (u_1 + 1), u_3} (Prod.{u_2, u_1} β α) (Prod.{u_1, u_2} α β)\n      γ (@Function.uncurry.{u_1, u_2, u_3} α β γ f) (@Prod.swap.{u_2, u_1} β α))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-dad97896d7f389435fc4676ee69a3cd5412b738b7528313f829bba3aa18e8a95","qualified_name":"Function.uncurry_injective","statement":"∀ {α : Type u_1} {β : Type u_2} {γ : Sort u_3},\n  @Function.Injective.{imax (u_1 + 1) (u_2 + 1) u_3, imax (max (u_2 + 1) (u_1 + 1)) u_3} (α → β → γ)\n    (Prod.{u_1, u_2} α β → γ) (@Function.uncurry.{u_1, u_2, u_3} α β γ)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-2966215e3c94213a2472a43b3cf3df8b1c4574c962ba605fa6fb43eacb324740","qualified_name":"Function.uncurry_update_update","statement":"∀ {α : Type u_1} {α' : Type u_2} {β : Type u_3} [inst : DecidableEq.{u_1 + 1} α] [inst_1 : DecidableEq.{u_2 + 1} α']\n  (f : α → α' → β) (a : α) (a' : α') (b : β),\n  @Eq.{max (max (u_1 + 1) (u_2 + 1)) (u_3 + 1)} (Prod.{u_1, u_2} α α' → β)\n    (@Function.uncurry.{u_1, u_2, u_3 + 1} α α' β\n      (@Function.update.{u_1 + 1, max (u_2 + 1) (u_3 + 1)} α (fun a => α' → β) inst f a\n        (@Function.update.{u_2 + 1, u_3 + 1} α' (fun a => β) inst_1 (f a) a' b)))\n    (@Function.update.{max (u_2 + 1) (u_1 + 1), u_3 + 1} (Prod.{u_1, u_2} α α') (fun a => β)\n      (fun a b => @instDecidableEqProd.{u_1, u_2} α α' inst inst_1 a b) (@Function.uncurry.{u_1, u_2, u_3 + 1} α α' β f)\n      (@Prod.mk.{u_1, u_2} α α' a a') b)"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-1d48f321655ad7b0ccc5a3093184cbabd7789532869888ca0dea819020a1c00e","qualified_name":"Function.update","statement":"{α : Sort u} → {β : α → Sort v} → [DecidableEq.{u} α] → ((a : α) → β a) → (a' : α) → β a' → (a : α) → β a"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-c437dc6632a5f71837453f81d2aa689414daf037b4773b4885135df40cfc2094","qualified_name":"Function.update_apply","statement":"∀ {α : Sort u} [inst : DecidableEq.{u} α] {β : Sort u_1} (f : α → β) (a' : α) (b : β) (a : α),\n  @Eq.{u_1} β (@Function.update.{u, u_1} α (fun a => β) inst f a' b a)\n    (@ite.{u_1} β (@Eq.{u} α a a') (inst a a') b (f a))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-9fd3418268bb55b614379e4cc0f1ad3bb0f8f6be517053d8073343ad67e038d8","qualified_name":"Function.update_apply_of_injective","statement":"∀ {α : Sort u} {β : α → Sort v} {α' : Sort w} [inst : DecidableEq.{u} α] [inst_1 : DecidableEq.{w} α']\n  (g : (a : α) → β a) {f : α' → α},\n  @Function.Injective.{w, u} α' α f →\n    ∀ (i : α') (a : β (f i)) (j : α'),\n      @Eq.{v} (β (f j)) (@Function.update.{u, v} α β inst g (f i) a (f j))\n        (@Function.update.{w, v} α' (fun i => β (f i)) inst_1 (fun i => g (f i)) i a j)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-b4641c162ea009ab813617d71210258915e0b0802f4e181099e8e7400d20a3d7","qualified_name":"Function.update_comm","statement":"∀ {α : Sort u_2} [inst : DecidableEq.{u_2} α] {β : α → Sort u_1} {a b : α},\n  @Ne.{u_2} α a b →\n    ∀ (v : β a) (w : β b) (f : (a : α) → β a),\n      @Eq.{imax u_2 u_1} ((a : α) → β a)\n        (@Function.update.{u_2, u_1} α β inst (@Function.update.{u_2, u_1} α β inst f a v) b w)\n        (@Function.update.{u_2, u_1} α β inst (@Function.update.{u_2, u_1} α β inst f b w) a v)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-4b363e842560ffba7f314bfa11f701ef97660d9f4badaf563d7e6ec7bbc24f54","qualified_name":"Function.update_comp_eq_of_forall_ne","statement":"∀ {α' : Sort w} [inst : DecidableEq.{w} α'] {α : Sort u_1} {β : Sort u_2} (g : α' → β) {f : α → α'} {i : α'} (a : β),\n  (∀ (x : α), @Ne.{w} α' (f x) i) →\n    @Eq.{imax u_1 u_2} (α → β)\n      (@Function.comp.{u_1, w, u_2} α α' β (@Function.update.{w, u_2} α' (fun a => β) inst g i a) f)\n      (@Function.comp.{u_1, w, u_2} α α' β g f)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-61f37738b52e3af28238ce62d94b007e7d21ac8cac40d1ce6622d4b1f2f7e544","qualified_name":"Function.update_comp_eq_of_forall_ne'","statement":"∀ {α : Sort u} {β : α → Sort v} [inst : DecidableEq.{u} α] {α' : Sort u_1} (g : (a : α) → β a) {f : α' → α} {i : α}\n  (a : β i),\n  (∀ (x : α'), @Ne.{u} α (f x) i) →\n    @Eq.{imax u_1 v} ((j : α') → β (f j)) (fun j => @Function.update.{u, v} α β inst g i a (f j)) fun j => g (f j)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-dd32b6f4b897f21d47629783713e3f836851af9d0dd9878e9198d3912c5a3659","qualified_name":"Function.update_comp_eq_of_injective","statement":"∀ {α : Sort u} {α' : Sort w} [inst : DecidableEq.{u} α] [inst_1 : DecidableEq.{w} α'] {β : Sort u_1} (g : α' → β)\n  {f : α → α'},\n  @Function.Injective.{u, w} α α' f →\n    ∀ (i : α) (a : β),\n      @Eq.{imax u u_1} (α → β)\n        (@Function.comp.{u, w, u_1} α α' β (@Function.update.{w, u_1} α' (fun a => β) inst_1 g (f i) a) f)\n        (@Function.update.{u, u_1} α (fun a => β) inst (@Function.comp.{u, w, u_1} α α' β g f) i a)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-476934555ba843068358c893cc06d6b7527d3bd1f33f663f82ed672456910a6e","qualified_name":"Function.update_comp_eq_of_injective'","statement":"∀ {α : Sort u} {β : α → Sort v} {α' : Sort w} [inst : DecidableEq.{u} α] [inst_1 : DecidableEq.{w} α']\n  (g : (a : α) → β a) {f : α' → α},\n  @Function.Injective.{w, u} α' α f →\n    ∀ (i : α') (a : β (f i)),\n      @Eq.{imax w v} ((j : α') → β (f j)) (fun j => @Function.update.{u, v} α β inst g (f i) a (f j))\n        (@Function.update.{w, v} α' (fun i => β (f i)) inst_1 (fun i => g (f i)) i a)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-2cafb7b5b0965a1a9bb3e149278101347777593bc5b370ba13b95e1e1257b73d","qualified_name":"Function.update_congr","statement":"∀ {α : Sort u} [inst : DecidableEq.{u} α] {β : Sort u_1} {f₁ f₂ : α → β},\n  @Eq.{imax u u_1} (α → β) f₁ f₂ →\n    ∀ {a'₁ a'₂ : α},\n      @Eq.{u} α a'₁ a'₂ →\n        ∀ {v₁ v₂ : β},\n          @Eq.{u_1} β v₁ v₂ →\n            ∀ {a₁ a₂ : α},\n              @Eq.{u} α a₁ a₂ →\n                @Eq.{u_1} β (@Function.update.{u, u_1} α (fun a => β) inst f₁ a'₁ v₁ a₁)\n                  (@Function.update.{u, u_1} α (fun a => β) inst f₂ a'₂ v₂ a₂)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-323d26f807fd7f40a68ab04877bbb2f0062c8a559a5c6f52abc8472089fddece","qualified_name":"Function.update_eq_const_of_subsingleton","statement":"∀ {α : Sort u} {α' : Sort w} [inst : DecidableEq.{u} α] [Subsingleton.{u} α] (a : α) (v : α') (f : α → α'),\n  @Eq.{imax u w} (α → α') (@Function.update.{u, w} α (fun a => α') inst f a v) (@Function.const.{w, u} α' α v)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-334b21bc22d736d37a5defe1075470c87d203a39c982f15d940f4e35c49e0348","qualified_name":"Function.update_eq_iff","statement":"∀ {α : Sort u} {β : α → Sort v} [inst : DecidableEq.{u} α] {a : α} {b : β a} {f g : (a : α) → β a},\n  Iff (@Eq.{imax u v} ((a : α) → β a) (@Function.update.{u, v} α β inst f a b) g)\n    (And (@Eq.{v} (β a) b (g a)) (∀ (x : α), @Ne.{u} α x a → @Eq.{v} (β x) (f x) (g x)))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-3f81c1a5662be39d854ab6599f383c87b4bf2a50141ec5ac0995ec4a576b0447","qualified_name":"Function.update_eq_self","statement":"∀ {α : Sort u} {β : α → Sort v} [inst : DecidableEq.{u} α] (a : α) (f : (a : α) → β a),\n  @Eq.{imax u v} ((a : α) → β a) (@Function.update.{u, v} α β inst f a (f a)) f"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-cb05bdd35f7f57202a1c0861c755902f85f3cae055bb414443873fb152f576ed","qualified_name":"Function.update_eq_self_iff","statement":"∀ {α : Sort u} {β : α → Sort v} [inst : DecidableEq.{u} α] {f : (a : α) → β a} {a : α} {b : β a},\n  Iff (@Eq.{imax u v} ((a : α) → β a) (@Function.update.{u, v} α β inst f a b) f) (@Eq.{v} (β a) b (f a))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-9c63e63ad1dbbe928f4f8bdc7811e6a1a95d9b9904b72842dd2829a9351c1b17","qualified_name":"Function.update_idem","statement":"∀ {α : Sort u_2} [inst : DecidableEq.{u_2} α] {β : α → Sort u_1} {a : α} (v w : β a) (f : (a : α) → β a),\n  @Eq.{imax u_2 u_1} ((a : α) → β a)\n    (@Function.update.{u_2, u_1} α β inst (@Function.update.{u_2, u_1} α β inst f a v) a w)\n    (@Function.update.{u_2, u_1} α β inst f a w)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-459549164e2ab37b93c0288272ab52a1f397b206d939acd680ad94137748c09f","qualified_name":"Function.update_injective","statement":"∀ {α : Sort u} {β : α → Sort v} [inst : DecidableEq.{u} α] (f : (a : α) → β a) (a' : α),\n  @Function.Injective.{v, imax u v} (β a') ((a : α) → β a) (@Function.update.{u, v} α β inst f a')"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-77ebd0895b7f89d9ace4721ba8caaad1df40a3e3687abf16109e9d2b9954fde0","qualified_name":"Function.update_ne_self_iff","statement":"∀ {α : Sort u} {β : α → Sort v} [inst : DecidableEq.{u} α] {f : (a : α) → β a} {a : α} {b : β a},\n  Iff (@Ne.{imax u v} ((a : α) → β a) (@Function.update.{u, v} α β inst f a b) f) (@Ne.{v} (β a) b (f a))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-97b8ae3a7597f6ac2a2f917bb9f3d27d34f89bd850b34fb395121b6d50fc6a04","qualified_name":"Function.update_of_ne","statement":"∀ {α : Sort u} {β : α → Sort v} [inst : DecidableEq.{u} α] {a a' : α},\n  @Ne.{u} α a a' → ∀ (v : β a') (f : (a : α) → β a), @Eq.{v} (β a) (@Function.update.{u, v} α β inst f a' v a) (f a)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f402e2892a5e62a576be24932ab86ce837ab8dedc3fd215693fd7551ad2da054","qualified_name":"Function.update_self","statement":"∀ {α : Sort u} {β : α → Sort v} [inst : DecidableEq.{u} α] (a : α) (v : β a) (f : (a : α) → β a),\n  @Eq.{v} (β a) (@Function.update.{u, v} α β inst f a v a) v"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-4774e08b25fa31e2a02742080d3183b23aea76a6fb98cedcd998b9f77f4a9977","qualified_name":"Function.«_aux_Mathlib_Logic_Function_Basic___macroRules_Function_term↿__1»","statement":"Lean.Macro"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-33c0761b791ef3bfc23d94b305a52c93ec1978f04181da31d6fe256d4c4cb8f8","qualified_name":"Function.«term↿_»","statement":"Lean.ParserDescr"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-19b826dc53712222f5ef63cd7dcc9a32be13c9b1ed910e0c038327ba1b13dece","qualified_name":"GE.ge.le","statement":"∀ {α : Type u_2} [inst : LE.{u_2} α] {a b : α}, @GE.ge.{u_2} α inst a b → @LE.le.{u_2} α inst b a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-a7f8db1326caebcb425d2e0c781fbb833dd38c1aa28f50dbdd3b55f0390ddcaf","qualified_name":"GT.gt.lt","statement":"∀ {α : Type u_2} [inst : LT.{u_2} α] {a b : α}, @GT.gt.{u_2} α inst a b → @LT.lt.{u_2} α inst b a"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-c83c95c95a915d122c7bc6eea709ffd25652ca98b07db1f2b5c7efcceab39c96","qualified_name":"HasCompactSupport.rpow_const","statement":"∀ {α : Type u_1} [inst : TopologicalSpace.{u_1} α] {f : α → Real},\n  @HasCompactSupport.{u_1, 0} α Real inst Real.instZero f →\n    ∀ {r : Real},\n      @Ne.{1} Real r (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        @HasCompactSupport.{u_1, 0} α Real inst Real.instZero fun x =>\n          @HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) (f x) r"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-38237efd94ad5d4cfac5ff2c8573d5876d6eaeeac7cd18bb93766dcb1c1945d0","qualified_name":"HasSSubset.SSubset.lt","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s t →\n    @LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s t"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-3f16b449509dfb5c4d1c5e815d65e81de76c422408fca54b19b0087b6d3dca8f","qualified_name":"HasSubset.Subset.le","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t → @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t"},{"kind":"theorem","module":"Mathlib.Data.Int.Basic","object_id":"object-0d00e40beb378c492055bc5eb38728cf82d9337c2e71910e2313683414dcbeee","qualified_name":"Int.dvd_natCast","statement":"∀ {m : Int} {n : Nat},\n  Iff (@Dvd.dvd.{0} Int Int.instDvd m (@Nat.cast.{0} Int instNatCastInt n)) (@Dvd.dvd.{0} Nat Nat.instDvd m.natAbs n)"},{"kind":"theorem","module":"Mathlib.Data.Int.Basic","object_id":"object-8f39f1960a6c322556cd40009e2911724304609c84cb0b3e49fcc40fe47c6477","qualified_name":"Int.eq_of_mod_eq_of_natAbs_sub_lt_natAbs","statement":"∀ {a b c : Int},\n  @Eq.{1} Int (@HMod.hMod.{0, 0, 0} Int Int Int (@instHMod.{0} Int Int.instMod) a b) c →\n    @LT.lt.{0} Nat instLTNat (@HSub.hSub.{0, 0, 0} Int Int Int (@instHSub.{0} Int Int.instSub) a c).natAbs b.natAbs →\n      @Eq.{1} Int a c"},{"kind":"theorem","module":"Mathlib.Data.Int.Basic","object_id":"object-82fafe7b2bff99daf59584271821d24c9df6f1eef298f08380fee367bcc9e672","qualified_name":"Int.eq_zero_of_dvd_of_nonneg_of_lt","statement":"∀ {m n : Int},\n  @LE.le.{0} Int Int.instLEInt (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0))) m →\n    @LT.lt.{0} Int Int.instLTInt m n →\n      @Dvd.dvd.{0} Int Int.instDvd n m → @Eq.{1} Int m (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0)))"},{"kind":"theorem","module":"Mathlib.Data.Int.Basic","object_id":"object-4c7e30a004d92f3f2aac26cd2f26742f6f94ae63fbe4fc8020b96f08f94a78a0","qualified_name":"Int.gcd_emod","statement":"∀ (m n : Int), @Eq.{1} Nat ((@HMod.hMod.{0, 0, 0} Int Int Int (@instHMod.{0} Int Int.instMod) m n).gcd n) (m.gcd n)"},{"kind":"theorem","module":"Mathlib.Data.Int.Basic","object_id":"object-d1628d71b72e501496f520b5e8e85f7caf043ca294f4e89b2c9260d4664225c8","qualified_name":"Int.instNontrivial","statement":"Nontrivial.{0} Int"},{"kind":"theorem","module":"Mathlib.Data.Int.Basic","object_id":"object-07efbb58d539060710139c6b920fdff89c0304df022baeb077796fa0df3e0f09","qualified_name":"Int.natAbs_le_of_dvd_ne_zero","statement":"∀ {m n : Int},\n  @Dvd.dvd.{0} Int Int.instDvd m n →\n    @Ne.{1} Int n (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0))) →\n      @LE.le.{0} Nat instLENat m.natAbs n.natAbs"},{"kind":"theorem","module":"Mathlib.Data.Int.Basic","object_id":"object-7c15fd55d5e9f2d1a79d1cfaa4c537b0832923eb7ed287e9ab34e0b357661b70","qualified_name":"Int.natAbs_surjective","statement":"@Function.Surjective.{1, 1} Int Nat Int.natAbs"},{"kind":"theorem","module":"Mathlib.Data.Int.Basic","object_id":"object-9a145602123742addca7daf9f9ec71412f0f9f0556c3072ac059d4ad4da7d2b2","qualified_name":"Int.natCast_dvd","statement":"∀ {n : Int} {m : Nat},\n  Iff (@Dvd.dvd.{0} Int Int.instDvd (@Nat.cast.{0} Int instNatCastInt m) n) (@Dvd.dvd.{0} Nat Nat.instDvd m n.natAbs)"},{"kind":"theorem","module":"Mathlib.Data.Int.Basic","object_id":"object-c7d86741b5fbe5643b2b516ab439029287176083b6fd86c8779fcbb59411dfde","qualified_name":"Int.natCast_dvd_ofNat","statement":"∀ {x y : Nat},\n  Iff (@Dvd.dvd.{0} Int Int.instDvd (@Nat.cast.{0} Int instNatCastInt x) (@OfNat.ofNat.{0} Int y (@instOfNat y)))\n    (@Dvd.dvd.{0} Nat Nat.instDvd x (@OfNat.ofNat.{0} Nat y (instOfNatNat y)))"},{"kind":"theorem","module":"Mathlib.Data.Int.Basic","object_id":"object-46ee7a3ec5631df0aeac862824b97c0f5c1c905e9f00629210494cfaf62507ce","qualified_name":"Int.ofNat_dvd_natCast","statement":"∀ {x y : Nat},\n  Iff (@Dvd.dvd.{0} Int Int.instDvd (@OfNat.ofNat.{0} Int x (@instOfNat x)) (@Nat.cast.{0} Int instNatCastInt y))\n    (@Dvd.dvd.{0} Nat Nat.instDvd (@OfNat.ofNat.{0} Nat x (instOfNatNat x)) y)"},{"kind":"theorem","module":"Mathlib.Data.Int.Basic","object_id":"object-53ccb9eecb87374b68d1cc9adac115348b1568cb9cff09261429c2649bd05b35","qualified_name":"Int.ofNat_injective","statement":"@Function.Injective.{1, 1} Nat Int Int.ofNat"},{"kind":"theorem","module":"Mathlib.Data.Int.Basic","object_id":"object-d311cee0dd0ab17f1b0cc4cde508a11b59a58ada81b74a3a61bba6b6758fbb3c","qualified_name":"Int.pow_right_injective","statement":"∀ {a : Int},\n  @LT.lt.{0} Nat instLTNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) a.natAbs →\n    @Function.Injective.{1, 1} Nat Int fun x =>\n      @HPow.hPow.{0, 0, 0} Int Nat Int (@instHPow.{0, 0} Int Nat (@instPowNat.{0} Int Int.instNatPow)) a x"},{"kind":"theorem","module":"Mathlib.Data.Int.Basic","object_id":"object-580580901779ce8b9df2a92a63f2853afb30476430533766e65f61a4aa91716f","qualified_name":"Int.strongRec_of_ge","statement":"∀ {m n : Int} {P : Int → Sort u_1} {lt : (n : Int) → @LT.lt.{0} Int Int.instLTInt n m → P n}\n  {ge : (n : Int) → @GE.ge.{0} Int Int.instLEInt n m → ((k : Int) → @LT.lt.{0} Int Int.instLTInt k n → P k) → P n}\n  (hn : @LE.le.{0} Int Int.instLEInt m n),\n  @Eq.{u_1} (P n) (@Int.strongRec.{u_1} m (fun x => P x) lt ge n)\n    (ge n hn fun k x => @Int.strongRec.{u_1} m (fun x => P x) lt ge k)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-dae86dded9eea343e2530c2d9f721b99bb7bfc3aa63e7ae655701144a3ead11f","qualified_name":"InvImage.equivalence","statement":"∀ {α : Sort u} {β : Sort v} (r : β → β → Prop) (f : α → β),\n  @Equivalence.{v} β r → @Equivalence.{u} α (@InvImage.{u, v} α β r f)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-26de72bcfbfe30a3b0a4f6d11a3231b8190d0069a7c89bbab2f6083cd84d6a4f","qualified_name":"IsClosed.and","statement":"∀ {X : Type u} {p₁ p₂ : X → Prop} [inst : TopologicalSpace.{u} X],\n  @IsClosed.{u} X inst (@Set.ofPred.{u} X fun x => p₁ x) →\n    @IsClosed.{u} X inst (@Set.ofPred.{u} X fun x => p₂ x) →\n      @IsClosed.{u} X inst (@Set.ofPred.{u} X fun x => And (p₁ x) (p₂ x))"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-a9346d0914b3fe8a0fb677625f428597e39dfcb720f6f0bb4938d929fdc9ceba","qualified_name":"IsClosed.iUnion_of_finite_nonempty","statement":"∀ {X : Type u} [inst : TopologicalSpace.{u} X] {ι : Type u_2} {s : ι → Set.{u} X},\n  (∀ (i : ι), @IsClosed.{u} X inst (s i)) →\n    @Set.Finite.{u_2} ι (@Set.ofPred.{u_2} ι fun i => @Set.Nonempty.{u} X (s i)) → @IsClosed.{u} X inst (⋃ i, s i)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-5cacfdc50b1726645c6d45642804c904a1747abd6d9a419852889fbfc9ff7708","qualified_name":"IsClosed.inter","statement":"∀ {X : Type u} {s₁ s₂ : Set.{u} X} [inst : TopologicalSpace.{u} X],\n  @IsClosed.{u} X inst s₁ →\n    @IsClosed.{u} X inst s₂ → @IsClosed.{u} X inst (@Inter.inter.{u} (Set.{u} X) (@Set.instInter.{u} X) s₁ s₂)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-ea97b3134f1d058e3d760ef5545e7e73c0d83918bc3ea67f8af731c19adf262f","qualified_name":"IsClosed.isLocallyClosed","statement":"∀ {X : Type u} {s : Set.{u} X} [inst : TopologicalSpace.{u} X], @IsClosed.{u} X inst s → @IsLocallyClosed.{u} X inst s"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-2ea920aada5e19e33ddc4e8405d56c2ad23104ebafedef95d847a27831f17bf2","qualified_name":"IsClosed.not","statement":"∀ {X : Type u} {p : X → Prop} [inst : TopologicalSpace.{u} X],\n  @IsClosed.{u} X inst (@Set.ofPred.{u} X fun a => p a) → @IsOpen.{u} X inst (@Set.ofPred.{u} X fun a => Not (p a))"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-13b9392cf986378d475f5d4c9b15e2ac3cc5b5eb227c2bbfa2dc9e187b9fd939","qualified_name":"IsClosed.sdiff","statement":"∀ {X : Type u} {s t : Set.{u} X} [inst : TopologicalSpace.{u} X],\n  @IsClosed.{u} X inst s →\n    @IsOpen.{u} X inst t → @IsClosed.{u} X inst (@SDiff.sdiff.{u} (Set.{u} X) (@Set.instSDiff.{u} X) s t)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-554d65762b05175ddc142bbf59a56edf5a78fb8378d738f12197035d6464602f","qualified_name":"IsClosed.union","statement":"∀ {X : Type u} {s₁ s₂ : Set.{u} X} [inst : TopologicalSpace.{u} X],\n  @IsClosed.{u} X inst s₁ →\n    @IsClosed.{u} X inst s₂ → @IsClosed.{u} X inst (@Union.union.{u} (Set.{u} X) (@Set.instUnion.{u} X) s₁ s₂)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-6451463f967aaeb5176168f2661e58532851b75b6dae7ed5b10a43eb86305b2e","qualified_name":"IsDomain.to_noZeroDivisors","statement":"∀ (α : Type u_3) [inst : Semiring.{u_3} α] [@IsDomain.{u_3} α inst],\n  @NoZeroDivisors.{u_3} α (@Distrib.toMul.{u_3} α (@instDistribOfSemiring.{u_3} α inst))\n    (@MulZeroClass.toZero.{u_3} α (@instMulZeroClassOfSemiring.{u_3} α inst))"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-0e588b44ae6d4234853a3fc151f01f198baedc94472e9672a6d4e320e15d197f","qualified_name":"IsOpen.and","statement":"∀ {X : Type u} {p₁ p₂ : X → Prop} [inst : TopologicalSpace.{u} X],\n  @IsOpen.{u} X inst (@Set.ofPred.{u} X fun x => p₁ x) →\n    @IsOpen.{u} X inst (@Set.ofPred.{u} X fun x => p₂ x) →\n      @IsOpen.{u} X inst (@Set.ofPred.{u} X fun x => And (p₁ x) (p₂ x))"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-a9c0f5eb6ebd235ed6860e1920c912dc4007c52b7c07792d09ab4bdc083e42fb","qualified_name":"IsOpen.iInter_of_finite_ne_univ","statement":"∀ {X : Type u} [inst : TopologicalSpace.{u} X] {ι : Type u_2} {s : ι → Set.{u} X},\n  (∀ (i : ι), @IsOpen.{u} X inst (s i)) →\n    @Set.Finite.{u_2} ι (@Set.ofPred.{u_2} ι fun i => @Ne.{u + 1} (Set.{u} X) (s i) (@Set.univ.{u} X)) →\n      @IsOpen.{u} X inst (⋂ i, s i)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-6f35961896f1afc0d98026265a111df7d2a5950b538ba10b57e17a0475dfba7b","qualified_name":"IsOpen.isClosed_compl","statement":"∀ {X : Type u} [inst : TopologicalSpace.{u} X] {s : Set.{u} X},\n  @IsOpen.{u} X inst s → @IsClosed.{u} X inst (@Compl.compl.{u} (Set.{u} X) (@Set.instCompl.{u} X) s)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-56699d882b62dbad59292d7cc119720bac7528ee81ab4d2daac9755a3cef2085","qualified_name":"IsOpen.isLocallyClosed","statement":"∀ {X : Type u} {s : Set.{u} X} [inst : TopologicalSpace.{u} X], @IsOpen.{u} X inst s → @IsLocallyClosed.{u} X inst s"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-3b8e145975e477697f5bb7c922f8841a1351beae16cb9960ab37f31f0783a054","qualified_name":"IsOpen.sdiff","statement":"∀ {X : Type u} {s t : Set.{u} X} [inst : TopologicalSpace.{u} X],\n  @IsOpen.{u} X inst s →\n    @IsClosed.{u} X inst t → @IsOpen.{u} X inst (@SDiff.sdiff.{u} (Set.{u} X) (@Set.instSDiff.{u} X) s t)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-bc2c689050bfdd0a5004e68e6900187b54729e7ca2cfa58189f3a8b4f9dbba5b","qualified_name":"IsOpen.union","statement":"∀ {X : Type u} {s₁ s₂ : Set.{u} X} [inst : TopologicalSpace.{u} X],\n  @IsOpen.{u} X inst s₁ →\n    @IsOpen.{u} X inst s₂ → @IsOpen.{u} X inst (@Union.union.{u} (Set.{u} X) (@Set.instUnion.{u} X) s₁ s₂)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b91a78c00288585805c7d9b8f08d62c3ca4a5275196703cf4993a6b445e3f708","qualified_name":"IsRightCancelAdd.toGrindAddRightCancel","statement":"∀ (α : Type u_5) [inst : AddSemigroup.{u_5} α] [@IsRightCancelAdd.{u_5} α (@AddSemigroup.toAdd.{u_5} α inst)],\n  @Lean.Grind.AddRightCancel.{u_5} α (@AddSemigroup.toAdd.{u_5} α inst)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-daaef5404fe363156d419c25d3e7063eb4c6b6cef7f34b5a3b7cfbc3eb369dc0","qualified_name":"IsSelfInv.neg","statement":"∀ {R : Type u_1} [inst : DivisionMonoid.{u_1} R]\n  [inst_1 :\n    @HasDistribNeg.{u_1} R\n      (@MulOne.toMul.{u_1} R\n        (@MulOneClass.toMulOne.{u_1} R\n          (@Monoid.toMulOneClass.{u_1} R\n            (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))]\n  {a : R},\n  @IsSelfInv.{u_1} R\n      (@InvOneClass.toInv.{u_1} R\n        (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))\n      a →\n    @IsSelfInv.{u_1} R\n      (@InvOneClass.toInv.{u_1} R\n        (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))\n      (@Neg.neg.{u_1} R\n        (@InvolutiveNeg.toNeg.{u_1} R\n          (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n            (@MulOne.toMul.{u_1} R\n              (@MulOneClass.toMulOne.{u_1} R\n                (@Monoid.toMulOneClass.{u_1} R\n                  (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n            inst_1))\n        a)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-821c10e17e643a82e08a14dcf91b7c3ef3fc6b3f1d01e9a1385ab8ed44a4536b","qualified_name":"IsSelfNeg.inv","statement":"∀ {R : Type u_1} [inst : DivisionMonoid.{u_1} R]\n  [inst_1 :\n    @HasDistribNeg.{u_1} R\n      (@MulOne.toMul.{u_1} R\n        (@MulOneClass.toMulOne.{u_1} R\n          (@Monoid.toMulOneClass.{u_1} R\n            (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))]\n  {a : R},\n  @IsSelfNeg.{u_1} R\n      (@InvolutiveNeg.toNeg.{u_1} R\n        (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n          (@MulOne.toMul.{u_1} R\n            (@MulOneClass.toMulOne.{u_1} R\n              (@Monoid.toMulOneClass.{u_1} R\n                (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n          inst_1))\n      a →\n    @IsSelfNeg.{u_1} R\n      (@InvolutiveNeg.toNeg.{u_1} R\n        (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n          (@MulOne.toMul.{u_1} R\n            (@MulOneClass.toMulOne.{u_1} R\n              (@Monoid.toMulOneClass.{u_1} R\n                (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n          inst_1))\n      (@Inv.inv.{u_1} R\n        (@InvOneClass.toInv.{u_1} R\n          (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))\n        a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-394d0851364b711c66503e5ada53eaf4109309268f70e36d6b1e27c90eff4e41","qualified_name":"LE.ext","statement":"∀ {α : Type u} {x y : LE.{u} α},\n  @Eq.{u + 1} (α → α → Prop) (@LE.le.{u} α x) (@LE.le.{u} α y) → @Eq.{u + 1} (LE.{u} α) x y"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-a0d3388216962c9a244ad7965ebf890e897560e2df115a803563e61f2555e3d6","qualified_name":"LE.ext_iff","statement":"∀ {α : Type u} {x y : LE.{u} α},\n  Iff (@Eq.{u + 1} (LE.{u} α) x y) (@Eq.{u + 1} (α → α → Prop) (@LE.le.{u} α x) (@LE.le.{u} α y))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-aad568950560249b8435e4230ce2d7f42142886039c571757152f0142a6deff0","qualified_name":"LE.le.antisymm","statement":"∀ {α : Type u_1} [inst : PartialOrder.{u_1} α] {a b : α},\n  @LE.le.{u_1} α (@Preorder.toLE.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) a b →\n    @LE.le.{u_1} α (@Preorder.toLE.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) b a → @Eq.{u_1 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-bdd48269f114a9886f34cdade8e2a028e18d0d4062999577a664e2fbd59935bf","qualified_name":"LE.le.antisymm'","statement":"∀ {α : Type u_1} [inst : PartialOrder.{u_1} α] {a b : α},\n  @LE.le.{u_1} α (@Preorder.toLE.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) b a →\n    @LE.le.{u_1} α (@Preorder.toLE.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) a b → @Eq.{u_1 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-375da6e7787cc44acc0562a87e84b2439efc59c6c7ccf14c51fbf3d2c257fdf9","qualified_name":"LE.le.eq_of_not_lt","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b →\n    Not (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b) → @Eq.{u_2 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-cd1d4433b09c669f80308dc18edf577302cdb8313ada12c23f0fba52f1820c84","qualified_name":"LE.le.eq_of_not_lt'","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a →\n    Not (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a) → @Eq.{u_2 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-4b87067d23a03668cf13d7b771d18ec74a8bd0fd1dffbe8babd192842e4be511","qualified_name":"LE.le.eq_or_lt","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b →\n    Or (@Eq.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-f2d816313965203b439217f4c917003d76382d7d546db235b4c8dd431814ec91","qualified_name":"LE.le.eq_or_lt'","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a →\n    Or (@Eq.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-7e6b038fd787f83b5d110baded40b0afa9ba4d96f9e3781c7626b70e8f5fd161","qualified_name":"LE.le.eq_or_lt_dec","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α}\n  [@DecidableLE.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst))],\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b →\n    Or (@Eq.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-509b4332ce2d0595675d88c68ca3626128a6396a7100baed86bafad1418edc8c","qualified_name":"LE.le.eq_or_lt_dec'","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α}\n  [@DecidableLE.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst))],\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a →\n    Or (@Eq.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-6930696efbd62e26fb8ceb7319a01c8a1adfe2efd718296bd4d813a93a711730","qualified_name":"LE.le.ge","statement":"∀ {α : Type u_2} [inst : LE.{u_2} α] {a b : α}, @LE.le.{u_2} α inst a b → @GE.ge.{u_2} α inst b a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-0146b9f6f6b885b699cc2948f835649fd27cf94c3f2ea65c614057dd747473ee","qualified_name":"LE.le.ge_iff_eq","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b →\n    Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a) (@Eq.{u_2 + 1} α a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-19201c9ca26d0424b3dc3f8785161a65df42ff430282643f7237d5f5ef7701ca","qualified_name":"LE.le.ge_iff_eq'","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a →\n    Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b) (@Eq.{u_2 + 1} α a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-5f4962a0b203a8796572cf0f80465bd8482660c8cc3d7e5ab930c390e69b8dc7","qualified_name":"LE.le.ge_or_le","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))\n      a b →\n    ∀ (c : α),\n      Or\n        (@LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a c)\n        (@LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-332eb73c4cf2299750f79deac030f8136afb6a7054e8dad3cd939807c6a1080d","qualified_name":"LE.le.ge_or_lt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))\n      a b →\n    ∀ (c : α),\n      Or\n        (@LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a c)\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-fd854e4c460c7ba007528b69f4addfefca7ca28c575dd6b3d2b125e7e5dddd85","qualified_name":"LE.le.gt_or_le","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))\n      a b →\n    ∀ (c : α),\n      Or\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a c)\n        (@LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-e8f20dc9190fdb4a5aaa9aae5c162b7bac9a9f36c17f980c7baca1ff57baae1a","qualified_name":"LE.le.le_or_ge","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))\n      b a →\n    ∀ (c : α),\n      Or\n        (@LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c a)\n        (@LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b c)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-d98e2c58351cdba941920745736da50b66de9f87b53d1954c37b4374e26d4ff6","qualified_name":"LE.le.le_or_gt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))\n      b a →\n    ∀ (c : α),\n      Or\n        (@LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c a)\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b c)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-f9ea42b6c0bc3d31828ecb54e4db37a05c220e082fab2e1a8be0fd6be0fb23d3","qualified_name":"LE.le.lt_iff_ne","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b →\n    Iff (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b) (@Ne.{u_2 + 1} α a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-97f4d35f20bf9fe245f788fc3910004090101a0bbd13dab81b430ddc9257d49b","qualified_name":"LE.le.lt_iff_ne'","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a →\n    Iff (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a) (@Ne.{u_2 + 1} α a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-9e5215229f652b36135fa12e408efd86bb19325460860f194137fdf068bc8d6f","qualified_name":"LE.le.lt_of_ne","statement":"∀ {α : Type u_1} [inst : PartialOrder.{u_1} α] {a b : α},\n  @LE.le.{u_1} α (@Preorder.toLE.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) a b →\n    @Ne.{u_1 + 1} α a b → @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-35e652c0a150fe740ae9e3a24d47eddc82d3f6e1077ff56f4f48ddefae5393b1","qualified_name":"LE.le.lt_of_ne'","statement":"∀ {α : Type u_1} [inst : PartialOrder.{u_1} α] {a b : α},\n  @LE.le.{u_1} α (@Preorder.toLE.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) b a →\n    @Ne.{u_1 + 1} α a b → @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) b a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-a58dedc638e8c4b052eca3d554bfcb8711ffb7f5c6eceb35ad3ef42c600f51ca","qualified_name":"LE.le.lt_of_not_ge","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b : α},\n  @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) a b →\n    Not (@LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) b a) → @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-0e1c1bf04d95844d5bd55275a5b3242bc5f14c63c67aba2c656dc827ae5c46af","qualified_name":"LE.le.lt_or_eq","statement":"∀ {α : Type u_1} [inst : PartialOrder.{u_1} α] {a b : α},\n  @LE.le.{u_1} α (@Preorder.toLE.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) a b →\n    Or (@LT.lt.{u_1} α (@Preorder.toLT.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) a b) (@Eq.{u_1 + 1} α a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-6edc4b87f82c683443b367566b8ebf5f1d8170b05740788e28e63e46c169bc28","qualified_name":"LE.le.lt_or_eq'","statement":"∀ {α : Type u_1} [inst : PartialOrder.{u_1} α] {a b : α},\n  @LE.le.{u_1} α (@Preorder.toLE.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) b a →\n    Or (@LT.lt.{u_1} α (@Preorder.toLT.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) b a) (@Eq.{u_1 + 1} α a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-ae6b0af6b585c91d835556be44300efa2f41756eb8d0b10327016529fca42c49","qualified_name":"LE.le.lt_or_eq_dec","statement":"∀ {α : Type u_1} [inst : PartialOrder.{u_1} α] {a b : α}\n  [@DecidableLE.{u_1} α (@Preorder.toLE.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst))],\n  @LE.le.{u_1} α (@Preorder.toLE.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) a b →\n    Or (@LT.lt.{u_1} α (@Preorder.toLT.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) a b) (@Eq.{u_1 + 1} α a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-367ff1c4254a2675ed0badc62ae3afd342fd9db397bce355c6f9ffd8176df453","qualified_name":"LE.le.lt_or_eq_dec'","statement":"∀ {α : Type u_1} [inst : PartialOrder.{u_1} α] {a b : α}\n  [@DecidableLE.{u_1} α (@Preorder.toLE.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst))],\n  @LE.le.{u_1} α (@Preorder.toLE.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) b a →\n    Or (@LT.lt.{u_1} α (@Preorder.toLT.{u_1} α (@PartialOrder.toPreorder.{u_1} α inst)) b a) (@Eq.{u_1 + 1} α a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-19d598942b02375868a9e8a1222c187af9846f49f12b3751a6e56f619933bb74","qualified_name":"LE.le.lt_or_ge","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))\n      b a →\n    ∀ (c : α),\n      Or\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c a)\n        (@LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b c)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-7677399c1bcf630e771e27ee7b322cad0bf0f257f3bf4eba552cd9edf866a9ff","qualified_name":"LE.le.not_lt_iff_eq","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b →\n    Iff (Not (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b))\n      (@Eq.{u_2 + 1} α a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-3bb743ddbe57e1dc9893eb91b3e710954d451db8bf45bb4dba15bde41c97bd0a","qualified_name":"LE.le.not_lt_iff_eq'","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a →\n    Iff (Not (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a))\n      (@Eq.{u_2 + 1} α a b)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-2f89e4751fe3d006286e763651901b71f375ee7f133fa3f7b252169b0b4bcae7","qualified_name":"LE.le.subset","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t → @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-9b1bdeee8756d2a1151cc2931b3cc3e51273742254eec0fccf7fbd767d772ca2","qualified_name":"LE.le.trans","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b c : α},\n  @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) a b →\n    @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) b c → @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) a c"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-28518709fcbf002cea51da29116264cdb54cd46eac6a15d06440acfb50d661f6","qualified_name":"LE.le.trans'","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b c : α},\n  @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) b a →\n    @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) c b → @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) c a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-7839b4d52080875b1843b0edf29460140e9e053a053594ddb162f16ddf76c449","qualified_name":"LE.le.trans_eq","statement":"∀ {α : Type u_1} {a b c : α} [inst : LE.{u_1} α],\n  @LE.le.{u_1} α inst a b → @Eq.{u_1 + 1} α b c → @LE.le.{u_1} α inst a c"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-067d66657e885d498a8981555ad411fc17cacaf5ae1de30667a06294c7df7c6d","qualified_name":"LE.le.trans_eq'","statement":"∀ {α : Type u_1} {a b c : α} [inst : LE.{u_1} α],\n  @LE.le.{u_1} α inst b a → @Eq.{u_1 + 1} α b c → @LE.le.{u_1} α inst c a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-a0b2b0eb226bb982d0a5b4198d561452d314c50bdbd03cb23e5fb44e9e8287b6","qualified_name":"LE.le.trans_lt","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b c : α},\n  @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) a b →\n    @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) b c → @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) a c"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-d583e9d4d04021db59a662414244195ec41b80b614dcf25a401827a4fbcc79fe","qualified_name":"LE.le.trans_lt'","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b c : α},\n  @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) b a →\n    @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) c b → @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) c a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-e2c92adda1db34baf2a34007979605d23ffdb36cfd7f9bd1e768ddcdc618d5c6","qualified_name":"LE.le.trans_strongLT","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → Preorder.{u_4} (π i)] {a b c : (i : ι) → π i},\n  @LE.le.{max u_1 u_4} ((i : ι) → π i) (@Pi.hasLe.{u_1, u_4} ι π fun i => @Preorder.toLE.{u_4} (π i) (inst i)) c b →\n    @StrongLT.{u_1, u_4} ι π (fun i => @Preorder.toLT.{u_4} (π i) (inst i)) b a →\n      @StrongLT.{u_1, u_4} ι π (fun i => @Preorder.toLT.{u_4} (π i) (inst i)) c a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-b9b5534268d6c3f23a98e8dd9f550d1843cb45ebdafcf8825815d8ca8e5b8bc2","qualified_name":"LT.lt.asymm","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b : α},\n  @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) a b → Not (@LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-e5ad2e2dd98951af887f98abff9145335a31b775ec2f3c1a63469a68644dad7e","qualified_name":"LT.lt.false","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a : α}, @LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) a a → False"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-d3e8f75486af6b1ed236be9079869fa58b2bb8d94a28a6f3aa04b832629504ac","qualified_name":"LT.lt.gt","statement":"∀ {α : Type u_2} [inst : LT.{u_2} α] {a b : α}, @LT.lt.{u_2} α inst a b → @GT.gt.{u_2} α inst b a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-e207413e42b3c5a8064c009dc6f534d6a120a4c8c1ff0c03f9957f1619c48610","qualified_name":"LT.lt.gt_or_lt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  @LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))\n      a b →\n    ∀ (c : α),\n      Or\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a c)\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-cde97fc7f27b034b631ac340d867f3aa68fcd76f3cafa57d017cd10575eeb1e0","qualified_name":"LT.lt.le","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b : α},\n  @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) a b → @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-538aadd6a5d3773c9843d9b453c6ae5903e0d83d319c92ab6623aa6e149de29c","qualified_name":"LT.lt.lt_or_gt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  @LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))\n      b a →\n    ∀ (c : α),\n      Or\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c a)\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b c)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-39d89ae5d8c2c386df4b1314ec431e73170c2e3a51cdd491d056627750aefd16","qualified_name":"LT.lt.ne","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b : α},\n  @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) a b → @Ne.{u_1 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-9c074fa0722feae868644005d3e26456f39bd137b17b185d87eda905e865fa9b","qualified_name":"LT.lt.ne'","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b : α},\n  @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) b a → @Ne.{u_1 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-8d109e92ddae059cd6bb0c8aaecb3e957dc57bda33720db4c14a087a756df800","qualified_name":"LT.lt.not_gt","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b : α},\n  @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) a b → Not (@LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) b a)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b24ad339abfe47ed96a0aa0abb1d15f6d3a97135b750a43252f8eb71e01c137d","qualified_name":"LT.lt.ssubset","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s t →\n    @LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s t"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-22c976823a7acd8fd6e16ad3d8c8c5b9a6dcfcf5a9d3063b33b2f2291c504e35","qualified_name":"LT.lt.trans","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b c : α},\n  @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) a b →\n    @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) b c → @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) a c"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-abc3b5be930f8901e11d04afb6b62caf48d5ae0857a7c2146bbabfbd8725071f","qualified_name":"LT.lt.trans'","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b c : α},\n  @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) b a →\n    @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) c b → @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) c a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-7c361fa4404bf0c62d62383d733642983ea13f1a03019f8b8aa21f783f5cbf1a","qualified_name":"LT.lt.trans_eq","statement":"∀ {α : Type u_1} {a b c : α} [inst : LT.{u_1} α],\n  @LT.lt.{u_1} α inst a b → @Eq.{u_1 + 1} α b c → @LT.lt.{u_1} α inst a c"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-e8af9eb9e9d5a1f58f0ebff67d84065f6adea27f9ab395d0a9b31af4c5d69f0a","qualified_name":"LT.lt.trans_eq'","statement":"∀ {α : Type u_1} {a b c : α} [inst : LT.{u_1} α],\n  @LT.lt.{u_1} α inst b a → @Eq.{u_1 + 1} α b c → @LT.lt.{u_1} α inst c a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-0eebb465d8727decbe9a813eb2b0f58f1b2d28058f36829a0f70824218938b33","qualified_name":"LT.lt.trans_le","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b c : α},\n  @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) a b →\n    @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) b c → @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) a c"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-129dcb1f6c39b89d0e0036ef46ee9919e676d0c0c396d811f009c65410e3e459","qualified_name":"LT.lt.trans_le'","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b c : α},\n  @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) b a →\n    @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) c b → @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) c a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-551ae0afaba712eb932ef5b81d0563383570025e3e4aa073a896148b1b83fc14","qualified_name":"LinearOrder.ext","statement":"∀ {α : Type u_2} {A B : LinearOrder.{u_2} α},\n  (∀ (x y : α),\n      Iff\n        (@LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α A))) x y)\n        (@LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α B))) x y)) →\n    @Eq.{u_2 + 1} (LinearOrder.{u_2} α) A B"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-6a4072e3899b105da952b8bb0e020a85728984859a7e0b75df8232cf1dd570a4","qualified_name":"LinearOrder.ext_lt","statement":"∀ {α : Type u_2} {A B : LinearOrder.{u_2} α},\n  (∀ (x y : α),\n      Iff\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α A))) x y)\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α B))) x y)) →\n    @Eq.{u_2 + 1} (LinearOrder.{u_2} α) A B"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-21156778bac8d9c1c4ce208acc04c17b9b1f258f75a9f911d81c4ad5f2257dcc","qualified_name":"LinearOrder.lift","statement":"{α : Type u_2} →\n  {β : Type u_3} →\n    [inst : LinearOrder.{u_3} β] →\n      [inst_1 : Max.{u_2} α] →\n        [inst_2 : Min.{u_2} α] →\n          (f : α → β) →\n            @Function.Injective.{u_2 + 1, u_3 + 1} α β f →\n              (∀ (x y : α),\n                  @Eq.{u_3 + 1} β (f (@Max.max.{u_2} α inst_1 x y))\n                    (@Max.max.{u_3} β (@LinearOrder.toMax.{u_3} β inst) (f x) (f y))) →\n                (∀ (x y : α),\n                    @Eq.{u_3 + 1} β (f (@Min.min.{u_2} α inst_2 x y))\n                      (@Min.min.{u_3} β (@LinearOrder.toMin.{u_3} β inst) (f x) (f y))) →\n                  LinearOrder.{u_2} α"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-dfaa945ce9b97db9191df48f4010e4b408bfc13e1df0e23f396f47bde25d0f71","qualified_name":"LinearOrder.lift'","statement":"{α : Type u_2} →\n  {β : Type u_3} →\n    [LinearOrder.{u_3} β] → (f : α → β) → @Function.Injective.{u_2 + 1, u_3 + 1} α β f → LinearOrder.{u_2} α"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-76f1a790e4f79bf1dc12e2e2cdf786c6ab6e64c2189f5428df4027b6a4da9361","qualified_name":"LinearOrder.liftWithOrd","statement":"{α : Type u_2} →\n  {β : Type u_3} →\n    [inst : LinearOrder.{u_3} β] →\n      [inst_1 : Max.{u_2} α] →\n        [inst_2 : Min.{u_2} α] →\n          [inst_3 : Ord.{u_2} α] →\n            (f : α → β) →\n              @Function.Injective.{u_2 + 1, u_3 + 1} α β f →\n                (∀ (x y : α),\n                    @Eq.{u_3 + 1} β (f (@Max.max.{u_2} α inst_1 x y))\n                      (@Max.max.{u_3} β (@LinearOrder.toMax.{u_3} β inst) (f x) (f y))) →\n                  (∀ (x y : α),\n                      @Eq.{u_3 + 1} β (f (@Min.min.{u_2} α inst_2 x y))\n                        (@Min.min.{u_3} β (@LinearOrder.toMin.{u_3} β inst) (f x) (f y))) →\n                    (∀ (a b : α),\n                        @Eq.{1} Ordering (@Ord.compare.{u_2} α inst_3 a b)\n                          (@Ord.compare.{u_3} β (@LinearOrder.toOrd.{u_3} β inst) (f a) (f b))) →\n                      LinearOrder.{u_2} α"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-e8f9b086cf218db35844cc49e4c29d49f6b32347661e71975812ddc60c80dfaf","qualified_name":"LinearOrder.liftWithOrd'","statement":"{α : Type u_2} →\n  {β : Type u_3} →\n    [inst : LinearOrder.{u_3} β] →\n      [inst_1 : Ord.{u_2} α] →\n        (f : α → β) →\n          @Function.Injective.{u_2 + 1, u_3 + 1} α β f →\n            (∀ (a b : α),\n                @Eq.{1} Ordering (@Ord.compare.{u_2} α inst_1 a b)\n                  (@Ord.compare.{u_3} β (@LinearOrder.toOrd.{u_3} β inst) (f a) (f b))) →\n              LinearOrder.{u_2} α"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-a8c750039060e2bd2741ae6e5018316293dff989ddc320e9e4fe3ff932573d41","qualified_name":"LinearOrder.ofSubsingleton","statement":"{α : Type u_5} → [Subsingleton.{u_5 + 1} α] → LinearOrder.{u_5} α"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-fb0c99a26eb30338fafd7bde00595ac11d02aa70c4c12c9e6c0eab373ac83466","qualified_name":"LinearOrder.toPartialOrder_injective","statement":"∀ {α : Type u_2},\n  @Function.Injective.{u_2 + 1, u_2 + 1} (LinearOrder.{u_2} α) (PartialOrder.{u_2} α)\n    (@LinearOrder.toPartialOrder.{u_2} α)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-5703b549c11bde87094e16198893f282ec023781223828c5ce2da3e696e9c0fd","qualified_name":"LinearOrder.toPartialOrder_injective_iff","statement":"∀ {α : Type u_2} {a₁ a₂ : LinearOrder.{u_2} α},\n  Iff (@Eq.{u_2 + 1} (LinearOrder.{u_2} α) a₁ a₂)\n    (@Eq.{u_2 + 1} (PartialOrder.{u_2} α) (@LinearOrder.toPartialOrder.{u_2} α a₁)\n      (@LinearOrder.toPartialOrder.{u_2} α a₂))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-d641e320d833f42034c90a1a8514d2be3480707a1cdd7762605d9b51d66a8f18","qualified_name":"List.Aesop.toFinset_nonempty_of_ne","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (l : List.{u_1} α),\n  @Ne.{u_1 + 1} (List.{u_1} α) l (@List.nil.{u_1} α) → @Finset.Nonempty.{u_1} α (@List.toFinset.{u_1} α inst l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d2f8d7467bebbe687e05a96e71fa7c9f5d86dd02856c594176a35e55fba62834","qualified_name":"List.Disjoint.map","statement":"∀ {α : Type u} {β : Type v} {f : α → β} {s t : List.{u} α},\n  @Function.Injective.{u + 1, v + 1} α β f →\n    @List.Disjoint.{u} α s t → @List.Disjoint.{v} β (@List.map.{u, v} α β f s) (@List.map.{u, v} α β f t)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-c2a01e7e65f20b4f36da883570db67772e4a112c7f1fc4a856b3a40b35543532","qualified_name":"List.Disjoint.map_iff","statement":"∀ {α : Type u} {β : Type v} {f : α → β} {s t : List.{u} α},\n  @Function.Injective.{u + 1, v + 1} α β f →\n    Iff (@List.Disjoint.{v} β (@List.map.{u, v} α β f s) (@List.map.{u, v} α β f t)) (@List.Disjoint.{u} α s t)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-168a8035a09978977c9278e62c79f50b5e88e26ebee18b04bde51318a69290dc","qualified_name":"List.Disjoint.of_map","statement":"∀ {α : Type u} {β : Type v} {f : α → β} {s t : List.{u} α},\n  @List.Disjoint.{v} β (@List.map.{u, v} α β f s) (@List.map.{u, v} α β f t) → @List.Disjoint.{u} α s t"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-54ad00d311d9725345c4d11b6aae88b23d2b40f3d4412a3a5760721b863ff2db","qualified_name":"List.Forall.imp","statement":"∀ {α : Type u} {p q : α → Prop},\n  (∀ (x : α), p x → q x) → ∀ {l : List.{u} α}, @List.Forall.{u} α p l → @List.Forall.{u} α q l"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-8156252a34f6a4f2e7f2fb9a74f5617a4fa424c6f858201b28dc8759e15e6486","qualified_name":"List.IsPrefix.idxOf_eq_of_mem","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst],\n  @List.IsPrefix.{u} α l₁ l₂ →\n    ∀ {a : α},\n      @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l₁ a →\n        @Eq.{1} Nat (@List.idxOf.{u} α inst a l₁) (@List.idxOf.{u} α inst a l₂)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-c12ca24048f88d7f8160e15ec9d3ab1e22e4174868e6f8dcbf749059516c5fa6","qualified_name":"List.IsPrefix.idxOf_le","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst],\n  @List.IsPrefix.{u} α l₁ l₂ →\n    ∀ (a : α), @LE.le.{0} Nat instLENat (@List.idxOf.{u} α inst a l₁) (@List.idxOf.{u} α inst a l₂)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-3f88265bad71c29444ba00316f67d9e2984cb7fb7b02947b693b2f3f81f5b231","qualified_name":"List.IsPrefix.mem_iff_idxOf_lt_length","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst],\n  @List.IsPrefix.{u} α l₁ l₂ →\n    ∀ (a : α),\n      Iff (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l₁ a)\n        (@LT.lt.{0} Nat instLTNat (@List.idxOf.{u} α inst a l₂) (@List.length.{u} α l₁))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-2c4636fcaf117eb97bdd1936b74a4dc2e51dadb1a819ead4adb06a7a9e189e52","qualified_name":"List.IsSuffix.idxOf_add_length_le","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst],\n  @List.IsSuffix.{u} α l₁ l₂ →\n    ∀ (a : α),\n      @LE.le.{0} Nat instLENat\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) (@List.idxOf.{u} α inst a l₂)\n          (@List.length.{u} α l₁))\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) (@List.idxOf.{u} α inst a l₁)\n          (@List.length.{u} α l₂))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-966b5ae9976beb91b24138669486e07c4c551b9e82a9fecc8e089adbe6b030ae","qualified_name":"List.IsSuffix.idxOf_le","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst],\n  @List.IsSuffix.{u} α l₁ l₂ →\n    ∀ (a : α),\n      @LE.le.{0} Nat instLENat (@List.idxOf.{u} α inst a l₂)\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n          (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) (@List.length.{u} α l₂)\n            (@List.length.{u} α l₁))\n          (@List.idxOf.{u} α inst a l₁))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-5bd2de005262a45cb837c6fe35d0f89d18e8312315c2c4eaae29fd4aebd14d9b","qualified_name":"List.Perm.disjoint_left","statement":"∀ {α : Type u} {l₁ l₂ l : List.{u} α},\n  @List.Perm.{u} α l₁ l₂ → Iff (@List.Disjoint.{u} α l₁ l) (@List.Disjoint.{u} α l₂ l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-55b9511a0ff91a7fabe58619aa443740f506ffd2fc8bd04e926b4409d2c4ae96","qualified_name":"List.Perm.disjoint_right","statement":"∀ {α : Type u} {l₁ l₂ l : List.{u} α},\n  @List.Perm.{u} α l₁ l₂ → Iff (@List.Disjoint.{u} α l l₁) (@List.Disjoint.{u} α l l₂)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-800cb01044d2731176ae8d0642dc8cfbf0b93207d603efb6136ce80d7d2c51a8","qualified_name":"List.Sublist.antisymm","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α},\n  @List.Sublist.{u} α l₁ l₂ → @List.Sublist.{u} α l₂ l₁ → @Eq.{u + 1} (List.{u} α) l₁ l₂"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-dc002387bbfa9aa697ca927ae83bec5a9160b1a584ad9f9f41f0ed0953648765","qualified_name":"List.Sublist.of_cons_of_ne","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α} {a b : α},\n  @Ne.{u + 1} α a b →\n    @List.Sublist.{u} α (@List.cons.{u} α a l₁) (@List.cons.{u} α b l₂) → @List.Sublist.{u} α (@List.cons.{u} α a l₁) l₂"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-c3539d04dd84e09e53e764358494546a08c7da7278ba233b5ae00a8ce35bce99","qualified_name":"List.append_cons_inj_of_notMem","statement":"∀ {α : Type u} {x₁ x₂ z₁ z₂ : List.{u} α} {a₁ a₂ : α},\n  a₂ ∉ x₁ →\n    a₂ ∉ z₁ →\n      Iff\n        (@Eq.{u + 1} (List.{u} α)\n          (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n            (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) x₁ (@List.cons.{u} α a₁ z₁))\n          (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n            (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) x₂ (@List.cons.{u} α a₂ z₂)))\n        (And (@Eq.{u + 1} (List.{u} α) x₁ x₂) (And (@Eq.{u + 1} α a₁ a₂) (@Eq.{u + 1} (List.{u} α) z₁ z₂)))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-b7a77268cea145c5116cc3edcc4128eafedf733b46e659ea161f84b242b0c13f","qualified_name":"List.append_eq_has_append","statement":"∀ {α : Type u} {L₁ L₂ : List.{u} α},\n  @Eq.{u + 1} (List.{u} α) (@List.append.{u} α L₁ L₂)\n    (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n      (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) L₁ L₂)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-614cd7457fba7cc56d40edb75bd644ed2223ebab0a206793a4e11867ff3aa09a","qualified_name":"List.append_left_injective","statement":"∀ {α : Type u} (t : List.{u} α),\n  @Function.Injective.{u + 1, u + 1} (List.{u} α) (List.{u} α) fun s =>\n    @HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n      (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) s t"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-2786302bddf0d4d2dcd7d587cfd349b02139a275878f8d7702882f8d33a3d3cd","qualified_name":"List.append_right_injective","statement":"∀ {α : Type u} (s : List.{u} α),\n  @Function.Injective.{u + 1, u + 1} (List.{u} α) (List.{u} α) fun t =>\n    @HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n      (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) s t"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-080f5bc39b0a4f271e766d1121d8852a4f620997852793bfce27237ed4e4b381","qualified_name":"List.append_subset_of_subset_of_subset","statement":"∀ {α : Type u} {l₁ l₂ l : List.{u} α},\n  @HasSubset.Subset.{u} (List.{u} α) (@List.instHasSubset.{u} α) l₁ l →\n    @HasSubset.Subset.{u} (List.{u} α) (@List.instHasSubset.{u} α) l₂ l →\n      @HasSubset.Subset.{u} (List.{u} α) (@List.instHasSubset.{u} α)\n        (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n          (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) l₁ l₂)\n        l"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-b2ba8e2a6975a8ad47ef6789df81413a185519768611e56af0f9a357f13b0eb2","qualified_name":"List.bind_eq_flatMap","statement":"∀ {α β : Type u_2} (f : α → List.{u_2} β) (l : List.{u_2} α),\n  @Eq.{u_2 + 1} (List.{u_2} β)\n    (@Bind.bind.{u_2, u_2} List.{u_2} (@Monad.toBind.{u_2, u_2} List.{u_2} List.instMonad.{u_2}) α β l f)\n    (@List.flatMap.{u_2, u_2} α β f l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-cb0e04503a57952f11ac5114f32f835f3188c74574be5920468a10a90c61275b","qualified_name":"List.choose_mem","statement":"∀ {α : Type u} (p : α → Prop) [inst : @DecidablePred.{u + 1} α p] (l : List.{u} α)\n  (hp : ∃ a, And (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a) (p a)),\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l (@List.choose.{u} α p inst l hp)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-4f8fed253b65c2c8fa12d25333bad022ebd4f7eac46673ebd0c611fc36f4f2c1","qualified_name":"List.choose_property","statement":"∀ {α : Type u} (p : α → Prop) [inst : @DecidablePred.{u + 1} α p] (l : List.{u} α)\n  (hp : ∃ a, And (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a) (p a)),\n  p (@List.choose.{u} α p inst l hp)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-2376641065cf5c9d6d1ecf2ff756905e843eb04e672f73c449fe8cb674ba5b1f","qualified_name":"List.choose_spec","statement":"∀ {α : Type u} (p : α → Prop) [inst : @DecidablePred.{u + 1} α p] (l : List.{u} α)\n  (hp : ∃ a, And (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a) (p a)),\n  And (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l (@List.choose.{u} α p inst l hp))\n    (p (@List.choose.{u} α p inst l hp))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-535d0373269d86088fa9c1c8a0b9e7d3bedd9a1f2ad9878c0257d51f27e10df3","qualified_name":"List.comp_map","statement":"∀ {α : Type u} {β : Type v} {γ : Type w} (h : β → γ) (g : α → β) (l : List.{u} α),\n  @Eq.{w + 1} (List.{w} γ) (@List.map.{u, w} α γ (@Function.comp.{u + 1, v + 1, w + 1} α β γ h g) l)\n    (@List.map.{v, w} β γ h (@List.map.{u, v} α β g l))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-20cd61cc94a217962f25a5256e6d0b7dd9d7e8194c6bf2a75f8e5ce681dc5e38","qualified_name":"List.concat_eq_reverse_cons","statement":"∀ {α : Type u} (a : α) (l : List.{u} α),\n  @Eq.{u + 1} (List.{u} α) (@List.concat.{u} α l a) (@List.reverse.{u} α (@List.cons.{u} α a (@List.reverse.{u} α l)))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-e2124cc2698712829126c450d415d058bf0814dac071c385fd7daedb825bf5a5","qualified_name":"List.cons_head!_tail","statement":"∀ {α : Type u} [inst : Inhabited.{u + 1} α] {l : List.{u} α},\n  @Ne.{u + 1} (List.{u} α) l (@List.nil.{u} α) →\n    @Eq.{u + 1} (List.{u} α) (@List.cons.{u} α (@List.head!.{u} α inst l) (@List.tail.{u} α l)) l"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-fe025d6fc294b1c2cd1b37ca10366e21aed4e77bd4f8ce84d7273a04647acdef","qualified_name":"List.cons_head?_tail","statement":"∀ {α : Type u} {l : List.{u} α} {a : α},\n  @Membership.mem.{u, u} α (Option.{u} α) (@Option.instMembership.{u} α) (@List.head?.{u} α l) a →\n    @Eq.{u + 1} (List.{u} α) (@List.cons.{u} α a (@List.tail.{u} α l)) l"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-55b7914b31549a2f7afc988daa2b016a2527088c07c0ce091ad76d5054e51762","qualified_name":"List.cons_injective","statement":"∀ {α : Type u} {a : α}, @Function.Injective.{u + 1, u + 1} (List.{u} α) (List.{u} α) (@List.cons.{u} α a)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-4c0b3d3ea648122d673a86ce36e9ad2965ba306dfaa10479cd414a4c1517d601","qualified_name":"List.cons_sublist_cons'","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α} {a b : α},\n  Iff (@List.Sublist.{u} α (@List.cons.{u} α a l₁) (@List.cons.{u} α b l₂))\n    (Or (@List.Sublist.{u} α (@List.cons.{u} α a l₁) l₂) (And (@Eq.{u + 1} α a b) (@List.Sublist.{u} α l₁ l₂)))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-b520b8f316f9cfb47525c28d0da9010cb14825105e3d4087adf9f5b72e985773","qualified_name":"List.cons_subset_of_subset_of_mem","statement":"∀ {α : Type u} {a : α} {l m : List.{u} α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) m a →\n    @HasSubset.Subset.{u} (List.{u} α) (@List.instHasSubset.{u} α) l m →\n      @HasSubset.Subset.{u} (List.{u} α) (@List.instHasSubset.{u} α) (@List.cons.{u} α a l) m"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d2949c43525ed9e197e1ad4673b640c80f7971bf44a01a7cb7cb8ccf32de89af","qualified_name":"List.disjoint_map","statement":"∀ {α : Type u} {β : Type v} {f : α → β} {s t : List.{u} α},\n  @Function.Injective.{u + 1, v + 1} α β f →\n    @List.Disjoint.{u} α s t → @List.Disjoint.{v} β (@List.map.{u, v} α β f s) (@List.map.{u, v} α β f t)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-1bcf086a979a06ff779a71f2172072ae55806c2cee638b6eb2787ab2ea2b7ea7","qualified_name":"List.disjoint_pmap","statement":"∀ {α : Type u} {β : Type v} {p : α → Prop} {f : (a : α) → p a → β} {s t : List.{u} α}\n  (hs : ∀ (a : α), @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) s a → p a)\n  (ht : ∀ (a : α), @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) t a → p a),\n  (∀ (a a' : α) (ha : p a) (ha' : p a'), @Eq.{v + 1} β (f a ha) (f a' ha') → @Eq.{u + 1} α a a') →\n    @List.Disjoint.{u} α s t → @List.Disjoint.{v} β (@List.pmap.{u, v} α β p f s hs) (@List.pmap.{u, v} α β p f t ht)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-317f52bde2ca5f2e7a7f5d4f9816f4a6a7017bdb078b30bcd9565054abdf74a2","qualified_name":"List.disjoint_reverse_left","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α}, Iff (@List.Disjoint.{u} α (@List.reverse.{u} α l₁) l₂) (@List.Disjoint.{u} α l₁ l₂)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-616e25b3079985fad911a7aa84009957d1673d2d81b45a17ca0e35fb9d7eeba6","qualified_name":"List.disjoint_reverse_right","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α}, Iff (@List.Disjoint.{u} α l₁ (@List.reverse.{u} α l₂)) (@List.Disjoint.{u} α l₁ l₂)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-de6194099c6258d4325a146d1952eefc06213c7f19035603498c8b482661a94e","qualified_name":"List.doubleton_eq","statement":"∀ {α : Type u} [inst : DecidableEq.{u + 1} α] {x y : α},\n  @Ne.{u + 1} α x y →\n    @Eq.{u + 1} (List.{u} α)\n      (@Insert.insert.{u, u} α (List.{u} α) (@List.instInsertOfDecidableEq_mathlib.{u} α inst) x\n        (@Singleton.singleton.{u, u} α (List.{u} α) (@List.instSingletonList.{u} α) y))\n      (@List.cons.{u} α x (@List.cons.{u} α y (@List.nil.{u} α)))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-0ea832bc60438d78c942eff63115d681c1131157672421b6b4bed346f0c038ad","qualified_name":"List.dropLast_append_getLast","statement":"∀ {α : Type u} {l : List.{u} α} (h : @Ne.{u + 1} (List.{u} α) l (@List.nil.{u} α)),\n  @Eq.{u + 1} (List.{u} α)\n    (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n      (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) (@List.dropLast.{u} α l)\n      (@List.cons.{u} α (@List.getLast.{u} α l h) (@List.nil.{u} α)))\n    l"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d1d815f10190bf9f975c7256fc24678244313ab2aefe99134cb41993f8489262","qualified_name":"List.dropLast_append_getLast?","statement":"∀ {α : Type u} {l : List.{u} α} (a : α),\n  @Membership.mem.{u, u} α (Option.{u} α) (@Option.instMembership.{u} α) (@List.getLast?.{u} α l) a →\n    @Eq.{u + 1} (List.{u} α)\n      (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n        (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) (@List.dropLast.{u} α l)\n        (@List.cons.{u} α a (@List.nil.{u} α)))\n      l"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-5626d1ecbe64c30db39d416522a3ed0b6d0f263242c5a8999b6537e0743cbc06","qualified_name":"List.dropLast_eq_nil_iff","statement":"∀ {α : Type u} {l : List.{u} α},\n  Iff (@Eq.{u + 1} (List.{u} α) (@List.dropLast.{u} α l) (@List.nil.{u} α))\n    (@LE.le.{0} Nat instLENat (@List.length.{u} α l) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-695c4a4c4af31ea9310a8c10875647ea863b21a455e11bcf67e78cce67a6d763","qualified_name":"List.eq_cons_of_length_one","statement":"∀ {α : Type u} {l : List.{u} α}\n  (h : @Eq.{1} Nat (@List.length.{u} α l) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))),\n  @Eq.{u + 1} (List.{u} α) l\n    (@List.cons.{u} α\n      (@List.get.{u} α l\n        (@Fin.mk (@List.length.{u} α l) (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) ⋯))\n      (@List.nil.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-3e060febee302a6f92f878906a85738e7376b3f6cba0b0c87dc6e1abe53e772b","qualified_name":"List.eq_cons_of_mem_head?","statement":"∀ {α : Type u} {x : α} {l : List.{u} α},\n  @Membership.mem.{u, u} α (Option.{u} α) (@Option.instMembership.{u} α) (@List.head?.{u} α l) x →\n    @Eq.{u + 1} (List.{u} α) l (@List.cons.{u} α x (@List.tail.{u} α l))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-a39ad80cf82847320c98cf503549c51f4c6096a8c1730cd587e1b20d45dc0127","qualified_name":"List.eq_nil_or_concat'","statement":"∀ {α : Type u} (l : List.{u} α),\n  Or (@Eq.{u + 1} (List.{u} α) l (@List.nil.{u} α))\n    (∃ L b,\n      @Eq.{u + 1} (List.{u} α) l\n        (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n          (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) L (@List.cons.{u} α b (@List.nil.{u} α))))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-6335112c9eab75f3c08e203c310934a62f34970e2fe4aebda30973e37011ee73","qualified_name":"List.eq_of_head?_eq_of_tail_eq","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α},\n  @Eq.{u + 1} (Option.{u} α) (@List.head?.{u} α l₁) (@List.head?.{u} α l₂) →\n    @Eq.{u + 1} (List.{u} α) (@List.tail.{u} α l₁) (@List.tail.{u} α l₂) → @Eq.{u + 1} (List.{u} α) l₁ l₂"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-c877c56de58a4f90abd2943b95019fdd6beaedf7cd55737257a726daf3c0b2c0","qualified_name":"List.eq_of_mem_map_const","statement":"∀ {α : Type u} {β : Type v} {b₁ b₂ : β} {l : List.{u} α},\n  @Membership.mem.{v, v} β (List.{v} β) (@List.instMembership.{v} β)\n      (@List.map.{u, v} α β (@Function.const.{v + 1, u + 1} β α b₂) l) b₁ →\n    @Eq.{v + 1} β b₁ b₂"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d6dd7efb6e328f6a9f3b7ca328a6f5c56d4479210ae096ae73cec923b73d2e1f","qualified_name":"List.eq_of_tail_eq_of_dropLast_eq","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α},\n  @LT.lt.{0} Nat instLTNat (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) (@List.length.{u} α l₁) →\n    @Eq.{u + 1} (List.{u} α) (@List.tail.{u} α l₁) (@List.tail.{u} α l₂) →\n      @Eq.{u + 1} (List.{u} α) (@List.dropLast.{u} α l₁) (@List.dropLast.{u} α l₂) → @Eq.{u + 1} (List.{u} α) l₁ l₂"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-8737531d6bb211827a255bdbc5899e2998f8eb69ed0f0f8ada02dbbee40f4e50","qualified_name":"List.eq_replicate_length","statement":"∀ {α : Type u} {a : α} {l : List.{u} α},\n  Iff (@Eq.{u + 1} (List.{u} α) l (@List.replicate.{u} α (@List.length.{u} α l) a))\n    (∀ (b : α), @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l b → @Eq.{u + 1} α b a)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-cbbf91043dc91b108fec566645fdbb62a5a48d96da8670b6b6fc046386db7edf","qualified_name":"List.erase_getElem","statement":"∀ {ι : Type u_1} [inst : BEq.{u_1} ι] [@LawfulBEq.{u_1} ι inst] {l : List.{u_1} ι} {i : Nat}\n  (hi : @LT.lt.{0} Nat instLTNat i (@List.length.{u_1} ι l)),\n  @List.Perm.{u_1} ι\n    (@List.erase.{u_1} ι inst l\n      (@GetElem.getElem.{u_1, 0, u_1} (List.{u_1} ι) Nat ι\n        (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u_1} ι as)) (@List.instGetElemNatLtLength.{u_1} ι) l i\n        hi))\n    (@List.eraseIdx.{u_1} ι l i)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-633c2af5ec376dd18d0c7b1b7d3e81fca1fac93072daeb0ff8d65f21a269e1b1","qualified_name":"List.exists_mem_cons_iff","statement":"∀ {α : Type u} (p : α → Prop) (a : α) (l : List.{u} α),\n  Iff (∃ x, And (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.cons.{u} α a l) x) (p x))\n    (Or (p a) (∃ x, And (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x) (p x)))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-aed5c114dd4818f7e468e9320ad8f6340d940f6a0023409cbb67d9e8af1c202d","qualified_name":"List.exists_mem_cons_of","statement":"∀ {α : Type u} {p : α → Prop} {a : α} (l : List.{u} α),\n  p a → ∃ x, And (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.cons.{u} α a l) x) (p x)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d33f4fa4f2f21cdf5df58dd31d89930a54d4c7e9b8744b1a4f47ab6c7aff1f5f","qualified_name":"List.exists_mem_cons_of_exists","statement":"∀ {α : Type u} {p : α → Prop} {a : α} {l : List.{u} α},\n  (∃ x, And (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x) (p x)) →\n    ∃ x, And (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.cons.{u} α a l) x) (p x)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-61de2ea60fe10b4e668f6089c245304d1a0a00e7abc12eeaa7e8013db2231eae","qualified_name":"List.exists_mem_iff_get","statement":"∀ {α : Type u} {l : List.{u} α} {p : α → Prop},\n  Iff (∃ x, And (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x) (p x))\n    (∃ i, p (@List.get.{u} α l i))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-a20dca3baf0fe3c0e7c8c5fafc3e040604011700786e770402df8437e6d54915","qualified_name":"List.exists_mem_iff_getElem","statement":"∀ {α : Type u} {l : List.{u} α} {p : α → Prop},\n  Iff (∃ x, And (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x) (p x))\n    (∃ i,\n      ∃ (x : @LT.lt.{0} Nat instLTNat i (@List.length.{u} α l)),\n        p\n          (@GetElem.getElem.{u, 0, u} (List.{u} α) Nat α\n            (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as)) (@List.instGetElemNatLtLength.{u} α) l i\n            x))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d552b1b90f8111cedeef0a2ec78f8822533f999bdbea6a1db54221e0e999762f","qualified_name":"List.exists_of_length_succ","statement":"∀ {α : Type u} {n : Nat} (l : List.{u} α),\n  @Eq.{1} Nat (@List.length.{u} α l)\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) n\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) →\n    ∃ h t, @Eq.{u + 1} (List.{u} α) l (@List.cons.{u} α h t)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d4f171bdf914db91f9312539c8eb7b9fed5106b4e78d890da8eba760b00a7292","qualified_name":"List.ext_getElem!","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α} [inst : Inhabited.{u + 1} α],\n  @Eq.{1} Nat (@List.length.{u} α l₁) (@List.length.{u} α l₂) →\n    (∀ (n : Nat),\n        @Eq.{u + 1} α\n          (@GetElem?.getElem!.{u, 0, u} (List.{u} α) Nat α\n            (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as)) (@List.instGetElem?NatLtLength.{u} α) inst\n            l₁ n)\n          (@GetElem?.getElem!.{u, 0, u} (List.{u} α) Nat α\n            (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as)) (@List.instGetElem?NatLtLength.{u} α) inst\n            l₂ n)) →\n      @Eq.{u + 1} (List.{u} α) l₁ l₂"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-b4d937cf94ae480afbcb7aafdb8a25185a71f7e2e934e0251b2a75073ade815e","qualified_name":"List.ext_getElem?'","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α},\n  (∀ (n : Nat),\n      @LT.lt.{0} Nat instLTNat n (@Max.max.{0} Nat Nat.instMax (@List.length.{u} α l₁) (@List.length.{u} α l₂)) →\n        @Eq.{u + 1} (Option.{u} α)\n          (@GetElem?.getElem?.{u, 0, u} (List.{u} α) Nat α\n            (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as)) (@List.instGetElem?NatLtLength.{u} α) l₁ n)\n          (@GetElem?.getElem?.{u, 0, u} (List.{u} α) Nat α\n            (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as)) (@List.instGetElem?NatLtLength.{u} α) l₂\n            n)) →\n    @Eq.{u + 1} (List.{u} α) l₁ l₂"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-7a583e4c7f420e5d2eda197dabeeb0c20acdcf32fd363cea7465a105e97c6c9a","qualified_name":"List.ext_getElem?_iff'","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α},\n  Iff (@Eq.{u + 1} (List.{u} α) l₁ l₂)\n    (∀ (n : Nat),\n      @LT.lt.{0} Nat instLTNat n (@Max.max.{0} Nat Nat.instMax (@List.length.{u} α l₁) (@List.length.{u} α l₂)) →\n        @Eq.{u + 1} (Option.{u} α)\n          (@GetElem?.getElem?.{u, 0, u} (List.{u} α) Nat α\n            (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as)) (@List.instGetElem?NatLtLength.{u} α) l₁ n)\n          (@GetElem?.getElem?.{u, 0, u} (List.{u} α) Nat α\n            (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as)) (@List.instGetElem?NatLtLength.{u} α) l₂\n            n))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-fded3af90cd09bdbb3e05debd4d3440b5ac4e066db9fe9fd42c40dd078bd2c84","qualified_name":"List.ext_get_iff","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α},\n  Iff (@Eq.{u + 1} (List.{u} α) l₁ l₂)\n    (And (@Eq.{1} Nat (@List.length.{u} α l₁) (@List.length.{u} α l₂))\n      (∀ (n : Nat) (h₁ : @LT.lt.{0} Nat instLTNat n (@List.length.{u} α l₁))\n        (h₂ : @LT.lt.{0} Nat instLTNat n (@List.length.{u} α l₂)),\n        @Eq.{u + 1} α (@List.get.{u} α l₁ (@Fin.mk (@List.length.{u} α l₁) n h₁))\n          (@List.get.{u} α l₂ (@Fin.mk (@List.length.{u} α l₂) n h₂))))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-8e0502e3b3b33445c20806b37930c3b1b7978ac917c8a990af210449f60c3600","qualified_name":"List.filterMap_congr","statement":"∀ {α : Type u} {β : Type v} {f g : α → Option.{v} β} {l : List.{u} α},\n  (∀ (x : α),\n      @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x → @Eq.{v + 1} (Option.{v} β) (f x) (g x)) →\n    @Eq.{v + 1} (List.{v} β) (@List.filterMap.{u, v} α β f l) (@List.filterMap.{u, v} α β g l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-c0a3225160863019726798e2dc3eda4c661af3b22277d5381ee8132a7d0eb25a","qualified_name":"List.filterMap_eq_flatMap_toList","statement":"∀ {α : Type u} {β : Type v} (f : α → Option.{v} β) (l : List.{u} α),\n  @Eq.{v + 1} (List.{v} β) (@List.filterMap.{u, v} α β f l)\n    (@List.flatMap.{u, v} α β (fun a => @Option.toList.{v} β (f a)) l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-81483c618d09a792f2357281465ef5a53c504584aaa928bbac25c8222cea9e77","qualified_name":"List.filterMap_eq_map_iff_forall_eq_some","statement":"∀ {α : Type u} {β : Type v} {f : α → Option.{v} β} {g : α → β} {l : List.{u} α},\n  Iff (@Eq.{v + 1} (List.{v} β) (@List.filterMap.{u, v} α β f l) (@List.map.{u, v} α β g l))\n    (∀ (x : α),\n      @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x →\n        @Eq.{v + 1} (Option.{v} β) (f x) (@Option.some.{v} β (g x)))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-22ac64512d6a77b2fac740062bc5a421d10e12517ca92b2946883baa6a0d0154","qualified_name":"List.filterMap_none","statement":"∀ {α : Type u} {β : Type v} (l : List.{u} α),\n  @Eq.{v + 1} (List.{v} β) (@List.filterMap.{u, v} α β (fun x => @Option.none.{v} β) l) (@List.nil.{v} β)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-0c1e324c79f415fdb90149d3ad14d766c71af3c01766b05934a4617d2498bc2e","qualified_name":"List.filter_attach","statement":"∀ {α : Type u} (l : List.{u} α) (p : α → Bool),\n  @Eq.{u + 1}\n    (List.{u} (@Subtype.{u + 1} α fun x => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x))\n    (@List.filter.{u}\n      (@Subtype.{u + 1} α fun x => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x)\n      (fun x =>\n        p (@Subtype.val.{u + 1} α (fun x => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x) x))\n      (@List.attach.{u} α l))\n    (@List.map.{u, u}\n      (@Subtype.{u + 1} α fun x =>\n        @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.filter.{u} α p l) x)\n      (@Subtype.{u + 1} α (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l))\n      (@Subtype.map.{u + 1, u + 1} α α\n        (fun x => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.filter.{u} α p l) x)\n        (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l) (@id.{u + 1} α) ⋯)\n      (@List.attach.{u} α (@List.filter.{u} α p l)))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-1d6bef4815e35874e0e12d1667c92d8a635dd0249f811aa232fa3ce5371a04b7","qualified_name":"List.filter_attach'","statement":"∀ {α : Type u} (l : List.{u} α)\n  (p : (@Subtype.{u + 1} α fun a => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a) → Bool)\n  [inst : DecidableEq.{u + 1} α],\n  @Eq.{u + 1}\n    (List.{u} (@Subtype.{u + 1} α fun a => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a))\n    (@List.filter.{u}\n      (@Subtype.{u + 1} α fun a => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a) p\n      (@List.attach.{u} α l))\n    (@List.map.{u, u}\n      (@Subtype.{u + 1} α fun x =>\n        @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α)\n          (@List.filter.{u} α\n            (fun x =>\n              @Decidable.decide\n                (∃ (h : @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x),\n                  @Eq.{1} Bool\n                    (p\n                      (@Subtype.mk.{u + 1} α\n                        (fun a => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a) x h))\n                    Bool.true)\n                (@exists_prop_decidable (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x)\n                  (fun h =>\n                    @Eq.{1} Bool\n                      (p\n                        (@Subtype.mk.{u + 1} α\n                          (fun a => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a) x h))\n                      Bool.true)\n                  (@List.instDecidableMemOfLawfulBEq.{u} α (@instBEqOfDecidableEq.{u} α inst) ⋯ x l) fun h =>\n                  instDecidableEqBool\n                    (p\n                      (@Subtype.mk.{u + 1} α\n                        (fun a => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a) x h))\n                    Bool.true))\n            l)\n          x)\n      (@Subtype.{u + 1} α (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l))\n      (@Subtype.map.{u + 1, u + 1} α α\n        (fun x =>\n          @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α)\n            (@List.filter.{u} α\n              (fun x =>\n                @Decidable.decide\n                  (∃ (h : @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x),\n                    @Eq.{1} Bool\n                      (p\n                        (@Subtype.mk.{u + 1} α\n                          (fun a => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a) x h))\n                      Bool.true)\n                  (@exists_prop_decidable (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x)\n                    (fun h =>\n                      @Eq.{1} Bool\n                        (p\n                          (@Subtype.mk.{u + 1} α\n                            (fun a => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a) x h))\n                        Bool.true)\n                    (@List.instDecidableMemOfLawfulBEq.{u} α (@instBEqOfDecidableEq.{u} α inst) ⋯ x l) fun h =>\n                    instDecidableEqBool\n                      (p\n                        (@Subtype.mk.{u + 1} α\n                          (fun a => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a) x h))\n                      Bool.true))\n              l)\n            x)\n        (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l) (@id.{u + 1} α) ⋯)\n      (@List.attach.{u} α\n        (@List.filter.{u} α\n          (fun x =>\n            @Decidable.decide\n              (∃ (h : @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x),\n                @Eq.{1} Bool\n                  (p\n                    (@Subtype.mk.{u + 1} α\n                      (fun a => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a) x h))\n                  Bool.true)\n              (@exists_prop_decidable (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x)\n                (fun h =>\n                  @Eq.{1} Bool\n                    (p\n                      (@Subtype.mk.{u + 1} α\n                        (fun a => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a) x h))\n                    Bool.true)\n                (@List.instDecidableMemOfLawfulBEq.{u} α (@instBEqOfDecidableEq.{u} α inst) ⋯ x l) fun h =>\n                instDecidableEqBool\n                  (p\n                    (@Subtype.mk.{u + 1} α\n                      (fun a => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a) x h))\n                  Bool.true))\n          l)))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-72a0f1df3d9963df53003226a1cac637b448cf805745776f7560bf0a20dfd04e","qualified_name":"List.filter_comm","statement":"∀ {α : Type u} (p q : α → Bool) (l : List.{u} α),\n  @Eq.{u + 1} (List.{u} α) (@List.filter.{u} α p (@List.filter.{u} α q l))\n    (@List.filter.{u} α q (@List.filter.{u} α p l))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-97d4fb4a6d47c6989c116b9fc80cd55c66d4295ca83b30e7ea67d0e0043de48b","qualified_name":"List.filter_eq_foldr","statement":"∀ {α : Type u} (p : α → Bool) (l : List.{u} α),\n  @Eq.{u + 1} (List.{u} α) (@List.filter.{u} α p l)\n    (@List.foldr.{u, u} α (List.{u} α) (fun a out => @cond.{u + 1} (List.{u} α) (p a) (@List.cons.{u} α a out) out)\n      (@List.nil.{u} α) l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-c57068c0bd2bb2dc9a5b615dbb637a0ccb3d3a7f2c4453be6c6962e6e8fb044f","qualified_name":"List.filter_false","statement":"∀ {α : Type u} (l : List.{u} α), @Eq.{u + 1} (List.{u} α) (@List.filter.{u} α (fun x => Bool.false) l) (@List.nil.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-f0d3eb50868656732979ebaa3f9c697d0e0566671b856f690ad3824c6dc080f5","qualified_name":"List.filter_singleton","statement":"∀ {α : Type u} {p : α → Bool} {a : α},\n  @Eq.{u + 1} (List.{u} α) (@List.filter.{u} α p (@List.cons.{u} α a (@List.nil.{u} α)))\n    (@cond.{u + 1} (List.{u} α) (p a) (@List.cons.{u} α a (@List.nil.{u} α)) (@List.nil.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-6815a05709771ef5570c000c14aea0ef9f7e6932a4f407c1788a94dbeab8503d","qualified_name":"List.filter_subset'","statement":"∀ {α : Type u} {p : α → Bool} (l : List.{u} α),\n  @HasSubset.Subset.{u} (List.{u} α) (@List.instHasSubset.{u} α) (@List.filter.{u} α p l) l"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d4fb61aefc95fe656948b184b54b500704049280effbfbfcbd94c6fd8c2cdcaf","qualified_name":"List.filter_subset_self","statement":"∀ {α : Type u} {p : α → Bool} (l : List.{u} α),\n  @HasSubset.Subset.{u} (List.{u} α) (@List.instHasSubset.{u} α) (@List.filter.{u} α p l) l"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-6c73210e9189eb44a71c7d729d8f81f0b2a4e8bcac36bf460a9bcc5e27eade5b","qualified_name":"List.filter_toFinset","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s : List.{u_1} α) (p : α → Prop)\n  [inst_1 : @DecidablePred.{u_1 + 1} α p],\n  @Eq.{u_1 + 1} (Finset.{u_1} α) (@Finset.filter.{u_1} α p inst_1 (@List.toFinset.{u_1} α inst s))\n    (@List.toFinset.{u_1} α inst (@List.filter.{u_1} α (fun b => @Decidable.decide (p b) (inst_1 b)) s))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-64ccdd408b3cf6d0200f3fcb8112e5208020f51ac3a74e8989a8ff36e5c35027","qualified_name":"List.filter_true","statement":"∀ {α : Type u} (l : List.{u} α), @Eq.{u + 1} (List.{u} α) (@List.filter.{u} α (fun x => Bool.true) l) l"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-f7b2bb9280ad743cc7f18bbe99bdb744114223e6776e4c9b27efddff55ba8a73","qualified_name":"List.flatMap_congr","statement":"∀ {α : Type u} {β : Type v} {l : List.{u} α} {f g : α → List.{v} β},\n  (∀ (x : α),\n      @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x → @Eq.{v + 1} (List.{v} β) (f x) (g x)) →\n    @Eq.{v + 1} (List.{v} β) (@List.flatMap.{u, v} α β f l) (@List.flatMap.{u, v} α β g l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-29db3a0873f43b35c2865b8774e2cda0d0418caabdf9aa1a1f4a7814640f1905","qualified_name":"List.flatMap_pure_eq_map","statement":"∀ {α : Type u} {β : Type v} (f : α → β) (l : List.{u} α),\n  @Eq.{v + 1} (List.{v} β)\n    (@List.flatMap.{u, v} α β\n      (@Function.comp.{u + 1, v + 1, v + 1} α β (List.{v} β)\n        (@Pure.pure.{v, v} List.{v}\n          (@Applicative.toPure.{v, v} List.{v}\n            (@Alternative.toApplicative.{v, v} List.{v}\n              (@AlternativeMonad.toAlternative.{v, v} List.{v} List.instAlternativeMonad_mathlib.{v})))\n          β)\n        f)\n      l)\n    (@List.map.{u, v} α β f l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-fb0e9c47a0955dc23f8209cd619fd904b0816ebf71c575a07fb22564098c2127","qualified_name":"List.foldlM_eq_foldl","statement":"∀ {α : Type u} {β : Type v} {m : Type v → Type w} [inst : Monad.{v, w} m] [@LawfulMonad.{v, w} m inst] (f : β → α → m β)\n  (b : β) (l : List.{u} α),\n  @Eq.{w + 1} (m β) (@List.foldlM.{v, w, u} m inst β α f b l)\n    (@List.foldl.{w, u} (m β) α (fun mb a => @Bind.bind.{v, w} m (@Monad.toBind.{v, w} m inst) β β mb fun b => f b a)\n      (@Pure.pure.{v, w} m (@Applicative.toPure.{v, w} m (@Monad.toApplicative.{v, w} m inst)) β b) l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-db26fca7e43e2a5c5881f26d11f2a4c44b106e159bd7b13653876234ec79924f","qualified_name":"List.foldl_concat","statement":"∀ {α : Type u} {β : Type v} (f : β → α → β) (b : β) (x : α) (xs : List.{u} α),\n  @Eq.{v + 1} β\n    (@List.foldl.{v, u} β α f b\n      (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n        (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) xs (@List.cons.{u} α x (@List.nil.{u} α))))\n    (f (@List.foldl.{v, u} β α f b xs) x)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-47371db7810ce25038ec863eab8ebdab2d5551286db51d69570d0cc689799740","qualified_name":"List.foldl_ext","statement":"∀ {α : Type u} {β : Type v} (f g : α → β → α) (a : α) {l : List.{v} β},\n  (∀ (a : α) (b : β),\n      @Membership.mem.{v, v} β (List.{v} β) (@List.instMembership.{v} β) l b → @Eq.{u + 1} α (f a b) (g a b)) →\n    @Eq.{u + 1} α (@List.foldl.{u, v} α β f a l) (@List.foldl.{u, v} α β g a l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-a0ba467ee613d3f7f975ae7973b4a8bd69f98978ce29a5b71b6f5e01e91edeb5","qualified_name":"List.foldl_fixed","statement":"∀ {α : Type u} {β : Type v} {a : α} (l : List.{v} β), @Eq.{u + 1} α (@List.foldl.{u, v} α β (fun a x => a) a l) a"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d96430a805076dd61757848fe7853a32b1627d1c6ea82596e73efbcfb55d7bcb","qualified_name":"List.foldl_fixed'","statement":"∀ {α : Type u} {β : Type v} {f : α → β → α} {a : α},\n  (∀ (b : β), @Eq.{u + 1} α (f a b) a) → ∀ (l : List.{v} β), @Eq.{u + 1} α (@List.foldl.{u, v} α β f a l) a"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-f400143796f2457bea8109e073dcce8eb7f91d19b29f3497d74df2f2c9c58b47","qualified_name":"List.foldl_hom₂","statement":"∀ {ι : Type u_1} {α : Type u} {β : Type v} {γ : Type w} (l : List.{u_1} ι) (f : α → β → γ) (op₁ : α → ι → α)\n  (op₂ : β → ι → β) (op₃ : γ → ι → γ) (a : α) (b : β),\n  (∀ (a : α) (b : β) (i : ι), @Eq.{w + 1} γ (f (op₁ a i) (op₂ b i)) (op₃ (f a b) i)) →\n    @Eq.{w + 1} γ (@List.foldl.{w, u_1} γ ι op₃ (f a b) l)\n      (f (@List.foldl.{u, u_1} α ι op₁ a l) (@List.foldl.{v, u_1} β ι op₂ b l))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-e5903a11eeb536be4fc1fb5bc5e30fa8c5a6f0b09de2df487fe39e498d47041b","qualified_name":"List.foldrM_eq_foldr","statement":"∀ {α : Type u} {β : Type v} {m : Type v → Type w} [inst : Monad.{v, w} m] [@LawfulMonad.{v, w} m inst] (f : α → β → m β)\n  (b : β) (l : List.{u} α),\n  @Eq.{w + 1} (m β) (@List.foldrM.{v, w, u} m inst β α f b l)\n    (@List.foldr.{u, w} α (m β) (fun a mb => @Bind.bind.{v, w} m (@Monad.toBind.{v, w} m inst) β β mb (f a))\n      (@Pure.pure.{v, w} m (@Applicative.toPure.{v, w} m (@Monad.toApplicative.{v, w} m inst)) β b) l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-fa5dd1904025d4bf2fc51dfd76682da452dfe05103592cf77bbbf71d9a47b024","qualified_name":"List.foldr_concat","statement":"∀ {α : Type u} {β : Type v} (f : α → β → β) (b : β) (x : α) (xs : List.{u} α),\n  @Eq.{v + 1} β\n    (@List.foldr.{u, v} α β f b\n      (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n        (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) xs (@List.cons.{u} α x (@List.nil.{u} α))))\n    (@List.foldr.{u, v} α β f (f x b) xs)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-52735428ff4d080537a9e5e73e586176f2a49b91e2f39cbda05a9911e3fb5fa3","qualified_name":"List.foldr_ext","statement":"∀ {α : Type u} {β : Type v} (f g : α → β → β) (b : β) {l : List.{u} α},\n  (∀ (a : α),\n      @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a →\n        ∀ (b : β), @Eq.{v + 1} β (f a b) (g a b)) →\n    @Eq.{v + 1} β (@List.foldr.{u, v} α β f b l) (@List.foldr.{u, v} α β g b l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-43ce350a4f5d102243451d289bacffff6952676912b70f85be76d1cc328f50ba","qualified_name":"List.foldr_fixed","statement":"∀ {α : Type u} {β : Type v} {b : β} (l : List.{u} α), @Eq.{v + 1} β (@List.foldr.{u, v} α β (fun x b => b) b l) b"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-65c29484b2ad26b4d4db217191cc991b0ea9292d190c7e835d7782b5f1a3bdc3","qualified_name":"List.foldr_fixed'","statement":"∀ {α : Type u} {β : Type v} {f : α → β → β} {b : β},\n  (∀ (a : α), @Eq.{v + 1} β (f a b) b) → ∀ (l : List.{u} α), @Eq.{v + 1} β (@List.foldr.{u, v} α β f b l) b"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-7a118a8fe6a48e60cfce78fcb043da7b2cf4eeb3dd4de113a6864085a15a94ee","qualified_name":"List.foldr_hom₂","statement":"∀ {ι : Type u_1} {α : Type u} {β : Type v} {γ : Type w} (l : List.{u_1} ι) (f : α → β → γ) (op₁ : ι → α → α)\n  (op₂ : ι → β → β) (op₃ : ι → γ → γ) (a : α) (b : β),\n  (∀ (a : α) (b : β) (i : ι), @Eq.{w + 1} γ (f (op₁ i a) (op₂ i b)) (op₃ i (f a b))) →\n    @Eq.{w + 1} γ (@List.foldr.{u_1, w} ι γ op₃ (f a b) l)\n      (f (@List.foldr.{u_1, u} ι α op₁ a l) (@List.foldr.{u_1, v} ι β op₂ b l))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-69db09e1da0c3ee6bf093e0cf779911ac4e77765da47cefa3ea4c909acd47aa2","qualified_name":"List.forall_append","statement":"∀ {α : Type u} {p : α → Prop} {xs ys : List.{u} α},\n  Iff\n    (@List.Forall.{u} α p\n      (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n        (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) xs ys))\n    (And (@List.Forall.{u} α p xs) (@List.Forall.{u} α p ys))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-934dd70846e88f6745dd1e8625d82d89604c436bedb747ef6955bd7d721ea0ae","qualified_name":"List.forall_cons","statement":"∀ {α : Type u} (p : α → Prop) (x : α) (l : List.{u} α),\n  Iff (@List.Forall.{u} α p (@List.cons.{u} α x l)) (And (p x) (@List.Forall.{u} α p l))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-cfecb631f027e40af86c8b14e9517ec5a0d4252ec78245ab978c6096fcdbc512","qualified_name":"List.forall_iff_forall_mem","statement":"∀ {α : Type u} {p : α → Prop} {l : List.{u} α},\n  Iff (@List.Forall.{u} α p l) (∀ (x : α), @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x → p x)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-282b924998c14059110b542c37d1551060e7a6c8b992817edebe312b95e8130a","qualified_name":"List.forall_map_iff","statement":"∀ {α : Type u} {β : Type v} {l : List.{u} α} {p : β → Prop} (f : α → β),\n  Iff (@List.Forall.{v} β p (@List.map.{u, v} α β f l))\n    (@List.Forall.{u} α (@Function.comp.{u + 1, v + 1, 1} α β Prop p f) l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-4aea06cc3d2160a349b34c555cc9aaa73219d31e64241939e4d528f7f32fc164","qualified_name":"List.forall_mem_iff_get","statement":"∀ {α : Type u} {l : List.{u} α} {p : α → Prop},\n  Iff (∀ (x : α), @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x → p x)\n    (∀ (i : Fin (@List.length.{u} α l)), p (@List.get.{u} α l i))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-1a1a3bb5f300f6c24da9d4ade07dccf05c0b19f7db9518928f22de92b6074eaa","qualified_name":"List.forall_mem_iff_getElem","statement":"∀ {α : Type u} {l : List.{u} α} {p : α → Prop},\n  Iff (∀ (x : α), @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x → p x)\n    (∀ (i : Nat) (x : @LT.lt.{0} Nat instLTNat i (@List.length.{u} α l)),\n      p\n        (@GetElem.getElem.{u, 0, u} (List.{u} α) Nat α (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as))\n          (@List.instGetElemNatLtLength.{u} α) l i x))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-39265d629c99fe3806f886f08c53bd4331be1e82c17c359796ff859302620cc9","qualified_name":"List.forall_mem_of_forall_mem_cons","statement":"∀ {α : Type u} {p : α → Prop} {a : α} {l : List.{u} α},\n  (∀ (x : α), @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.cons.{u} α a l) x → p x) →\n    ∀ (x : α), @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x → p x"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-2fdf47018729f73746d6e46180260ed7bfe5272c854b3cfba4a46d334c8c3fb8","qualified_name":"List.getElem?_idxOf","statement":"∀ {α : Type u} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {a : α} {l : List.{u} α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a →\n    @Eq.{u + 1} (Option.{u} α)\n      (@GetElem?.getElem?.{u, 0, u} (List.{u} α) Nat α (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as))\n        (@List.instGetElem?NatLtLength.{u} α) l (@List.idxOf.{u} α inst a l))\n      (@Option.some.{u} α a)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-b92cec2a347d18d45742e5152bb3bf7a222d13981691d5fb276585be4df8311b","qualified_name":"List.getElem?_length","statement":"∀ {α : Type u} (l : List.{u} α),\n  @Eq.{u + 1} (Option.{u} α)\n    (@GetElem?.getElem?.{u, 0, u} (List.{u} α) Nat α (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as))\n      (@List.instGetElem?NatLtLength.{u} α) l (@List.length.{u} α l))\n    (@Option.none.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-f792aadaf426c860b342b464459844ec5388bed1be421facbbfeacb8d5f25bf2","qualified_name":"List.getElem?_surjective_iff","statement":"∀ {α : Type u} {l : List.{u} α},\n  Iff\n    (@Function.Surjective.{1, u + 1} Nat (Option.{u} α) fun n =>\n      @GetElem?.getElem?.{u, 0, u} (List.{u} α) Nat α (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as))\n        (@List.instGetElem?NatLtLength.{u} α) l n)\n    (∀ (x : α), @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-59332a8c6d56feaa21aa421fd3ccd8dfa0c6f6d0a6d2649904dc5b1f54a27a78","qualified_name":"List.getElem_fin_surjective_iff","statement":"∀ {α : Type u} {l : List.{u} α},\n  Iff\n    (@Function.Surjective.{1, u + 1} (Fin (@List.length.{u} α l)) α fun n =>\n      @GetElem.getElem.{u, 0, u} (List.{u} α) Nat α (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as))\n        (@List.instGetElemNatLtLength.{u} α) l (@Fin.val (@List.length.{u} α l) n) ⋯)\n    (∀ (x : α), @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-8dea6440c565c5d97e1365b9a404c89f095588f1ab25c6d5f982531afe2c6043","qualified_name":"List.getElem_map_rev","statement":"∀ {α : Type u} {β : Type v} (f : α → β) {l : List.{u} α} {n : Nat}\n  {h : @LT.lt.{0} Nat instLTNat n (@List.length.{u} α l)},\n  @Eq.{v + 1} β\n    (f\n      (@GetElem.getElem.{u, 0, u} (List.{u} α) Nat α (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as))\n        (@List.instGetElemNatLtLength.{u} α) l n h))\n    (@GetElem.getElem.{v, 0, v} (List.{v} β) Nat β (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{v} β as))\n      (@List.instGetElemNatLtLength.{v} β) (@List.map.{u, v} α β f l) n ⋯)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-3eb6f3ba8f072570e17197fd57eb2ece4f37f19e198661416b8e1c9be62541f4","qualified_name":"List.getElem_mem_tail","statement":"∀ {α : Type u} {k : Nat} (l : List.{u} α),\n  @Ne.{1} Nat k (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    ∀ (hk : @LT.lt.{0} Nat instLTNat k (@List.length.{u} α l)),\n      @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.tail.{u} α l)\n        (@GetElem.getElem.{u, 0, u} (List.{u} α) Nat α (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as))\n          (@List.instGetElemNatLtLength.{u} α) l k hk)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-4501c41d272566cc90366237f411d19658c7963c6df311d5ea05fcc0c73c5717","qualified_name":"List.getElem_set_of_ne","statement":"∀ {α : Type u} {l : List.{u} α} {i j : Nat},\n  @Ne.{1} Nat i j →\n    ∀ (a : α) (hj : @LT.lt.{0} Nat instLTNat j (@List.length.{u} α (@List.set.{u} α l i a))),\n      @Eq.{u + 1} α\n        (@GetElem.getElem.{u, 0, u} (List.{u} α) Nat α (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as))\n          (@List.instGetElemNatLtLength.{u} α) (@List.set.{u} α l i a) j hj)\n        (@GetElem.getElem.{u, 0, u} (List.{u} α) Nat α (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as))\n          (@List.instGetElemNatLtLength.{u} α) l j ⋯)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-b4f8bfd6bb4b3d84f17c7d96e4c43ae09feafad223d9e0cc93d5616b4e7e4289","qualified_name":"List.getLast?_append_cons","statement":"∀ {α : Type u} (l₁ : List.{u} α) (a : α) (l₂ : List.{u} α),\n  @Eq.{u + 1} (Option.{u} α)\n    (@List.getLast?.{u} α\n      (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n        (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) l₁ (@List.cons.{u} α a l₂)))\n    (@List.getLast?.{u} α (@List.cons.{u} α a l₂))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d7eefd18d0df15cb0f6e2d16d192e8416ad7b1559f193f0aeef70d90a1f7be27","qualified_name":"List.getLast?_append_of_ne_nil","statement":"∀ {α : Type u} (l₁ : List.{u} α) {l₂ : List.{u} α},\n  @Ne.{u + 1} (List.{u} α) l₂ (@List.nil.{u} α) →\n    @Eq.{u + 1} (Option.{u} α)\n      (@List.getLast?.{u} α\n        (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n          (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) l₁ l₂))\n      (@List.getLast?.{u} α l₂)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-7ab87c7fe42534fefe7db5d5a5c6e49f57f4389616af8af4aa26756c252e823e","qualified_name":"List.getLast?_eq_getLast_of_ne_nil","statement":"∀ {α : Type u} {l : List.{u} α} (h : @Ne.{u + 1} (List.{u} α) l (@List.nil.{u} α)),\n  @Eq.{u + 1} (Option.{u} α) (@List.getLast?.{u} α l) (@Option.some.{u} α (@List.getLast.{u} α l h))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-430589b1dac8cf4e7afea36a7fca9f3da54a93c6b2eae30f9bc987b6deeca31d","qualified_name":"List.getLast?_flatten_replicate","statement":"∀ {α : Type u} {n : Nat},\n  @Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    ∀ (l : List.{u} α),\n      @Eq.{u + 1} (Option.{u} α) (@List.getLast?.{u} α (@List.flatten.{u} α (@List.replicate.{u} (List.{u} α) n l)))\n        (@List.getLast?.{u} α l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-0de80a81387d45b00efa530dce44d6d4b89c25fd84b893ef80b121276e8b97d5","qualified_name":"List.getLastI_eq_getLast?_getD","statement":"∀ {α : Type u} [inst : Inhabited.{u + 1} α] (l : List.{u} α),\n  @Eq.{u + 1} α (@List.getLastI.{u} α inst l)\n    (@Option.getD.{u} α (@List.getLast?.{u} α l) (@Inhabited.default.{u + 1} α inst))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-f620e76fdbe07626817b0e49b3c6c74d0e3ccac934544217a31daa189a948722","qualified_name":"List.getLast_append_of_right_ne_nil","statement":"∀ {α : Type u} (l₁ l₂ : List.{u} α) (h : @Ne.{u + 1} (List.{u} α) l₂ (@List.nil.{u} α)),\n  @Eq.{u + 1} α\n    (@List.getLast.{u} α\n      (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n        (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) l₁ l₂)\n      ⋯)\n    (@List.getLast.{u} α l₂ h)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d68dfdb950fde32a5979fe2ccc84e307204f5099c55dce33377bdda2fcbfdf89","qualified_name":"List.getLast_append_singleton","statement":"∀ {α : Type u} {a : α} (l : List.{u} α),\n  @Eq.{u + 1} α\n    (@List.getLast.{u} α\n      (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n        (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) l (@List.cons.{u} α a (@List.nil.{u} α)))\n      ⋯)\n    a"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-f7ee3224a80c8dd9755ae0ce21b87cdc0235d41f367aa9bac7d3f452f4f41fc1","qualified_name":"List.getLast_concat'","statement":"∀ {α : Type u} {a : α} (l : List.{u} α), @Eq.{u + 1} α (@List.getLast.{u} α (@List.concat.{u} α l a) ⋯) a"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-581ee28b94e7ad84e9d3cf002224c4330c66720269fbad156fd60c52e6e24317","qualified_name":"List.getLast_congr","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α} (h₁ : @Ne.{u + 1} (List.{u} α) l₁ (@List.nil.{u} α))\n  (h₂ : @Ne.{u + 1} (List.{u} α) l₂ (@List.nil.{u} α)),\n  @Eq.{u + 1} (List.{u} α) l₁ l₂ → @Eq.{u + 1} α (@List.getLast.{u} α l₁ h₁) (@List.getLast.{u} α l₂ h₂)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-e9d32c8f097b9ddc264dca3217e45e010c10fa9dd87e8f059e49abe4dab25ddd","qualified_name":"List.getLast_replicate_succ","statement":"∀ {α : Type u} (m : Nat) (a : α),\n  @Eq.{u + 1} α\n    (@List.getLast.{u} α\n      (@List.replicate.{u} α\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        a)\n      ⋯)\n    a"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-67a0b358bf89455e6af645899fe56e80e5ed33ca8b1df37ec9fe2b40acd0f25e","qualified_name":"List.getLast_singleton'","statement":"∀ {α : Type u} (a : α), @Eq.{u + 1} α (@List.getLast.{u} α (@List.cons.{u} α a (@List.nil.{u} α)) ⋯) a"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-c67378f45ae2366d6fde27a16268ea10078492f8458bd17a765d598bbdb369c2","qualified_name":"List.get_attach","statement":"∀ {α : Type u} (l : List.{u} α)\n  (i :\n    Fin\n      (@List.length.{u}\n        (@Subtype.{u + 1} α fun x => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x)\n        (@List.attach.{u} α l))),\n  @Eq.{u + 1} α\n    (@Subtype.val.{u + 1} α (fun x => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x)\n      (@List.get.{u}\n        (@Subtype.{u + 1} α fun x => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x)\n        (@List.attach.{u} α l) i))\n    (@List.get.{u} α l\n      (@Fin.mk (@List.length.{u} α l)\n        (@Fin.val\n          (@List.length.{u}\n            (@Subtype.{u + 1} α fun x => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x)\n            (@List.attach.{u} α l))\n          i)\n        ⋯))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-da752964750e6bf10bb96e23fd7f030b83cedaada128c8cd8baa7ec6abbaa892","qualified_name":"List.get_eq_getElem?","statement":"∀ {α : Type u} (l : List.{u} α) (i : Fin (@List.length.{u} α l)),\n  @Eq.{u + 1} α (@List.get.{u} α l i)\n    (@Option.get.{u} α\n      (@GetElem?.getElem?.{u, 0, u} (List.{u} α) (Fin (@List.length.{u} α l)) α\n        (fun xs i => @LT.lt.{0} Nat instLTNat (@Fin.val (@List.length.{u} α l) i) (@List.length.{u} α xs))\n        (@Fin.instGetElem?FinVal.{u, u} (List.{u} α) α (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as))\n          (@List.length.{u} α l) (@List.instGetElem?NatLtLength.{u} α))\n        l i)\n      ⋯)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-132a92b090e31e945874084405ed4fb1de1398f9765c6b1ced0697cc6c784aea","qualified_name":"List.get_length_sub_one","statement":"∀ {α : Type u} {l : List.{u} α}\n  (h :\n    @LT.lt.{0} Nat instLTNat\n      (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) (@List.length.{u} α l)\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (@List.length.{u} α l)),\n  @Eq.{u + 1} α\n    (@List.get.{u} α l\n      (@Fin.mk (@List.length.{u} α l)\n        (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) (@List.length.{u} α l)\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        h))\n    (@List.getLast.{u} α l ⋯)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-4669bb273d41a86c744a5d1287745fdc43749ac7691520d03f563c61b680df5c","qualified_name":"List.get_reverse'","statement":"∀ {α : Type u} (l : List.{u} α) (n : Fin (@List.length.{u} α (@List.reverse.{u} α l)))\n  (hn' :\n    @LT.lt.{0} Nat instLTNat\n      (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n        (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) (@List.length.{u} α l)\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        (@Fin.val (@List.length.{u} α (@List.reverse.{u} α l)) n))\n      (@List.length.{u} α l)),\n  @Eq.{u + 1} α (@List.get.{u} α (@List.reverse.{u} α l) n)\n    (@List.get.{u} α l\n      (@Fin.mk (@List.length.{u} α l)\n        (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat)\n          (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) (@List.length.{u} α l)\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n          (@Fin.val (@List.length.{u} α (@List.reverse.{u} α l)) n))\n        hn'))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-5263a765a0b0cb14223fa57ca24604fc2a31714bf1f7681b5d2d78a77b8ecaef","qualified_name":"List.get_surjective_iff","statement":"∀ {α : Type u} {l : List.{u} α},\n  Iff (@Function.Surjective.{1, u + 1} (Fin (@List.length.{u} α l)) α (@List.get.{u} α l))\n    (∀ (x : α), @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-b7b4109a2723254e532cc56107774b3e741996bb271ca76e00c7657aae480411","qualified_name":"List.get_tail","statement":"∀ {α : Type u} (l : List.{u} α) (i : Nat) (h : @LT.lt.{0} Nat instLTNat i (@List.length.{u} α (@List.tail.{u} α l)))\n  (h' :\n    optParam.{0}\n      (@LT.lt.{0} Nat instLTNat\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) i\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        (@List.length.{u} α l))\n      ⋯),\n  @Eq.{u + 1} α (@List.get.{u} α (@List.tail.{u} α l) (@Fin.mk (@List.length.{u} α (@List.tail.{u} α l)) i h))\n    (@List.get.{u} α l\n      (@Fin.mk (@List.length.{u} α l)\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) i\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        h'))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-ec9e83499faf11b4747006866da057db122ea1d7767a39937da26134998901e4","qualified_name":"List.head!_append","statement":"∀ {α : Type u} [inst : Inhabited.{u + 1} α] (t : List.{u} α) {s : List.{u} α},\n  @Ne.{u + 1} (List.{u} α) s (@List.nil.{u} α) →\n    @Eq.{u + 1} α\n      (@List.head!.{u} α inst\n        (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n          (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) s t))\n      (@List.head!.{u} α inst s)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-aa226bd21889da232aa4ba4f0862a1d37359fbe4eb343075d873681827bf7986","qualified_name":"List.head!_cons","statement":"∀ {α : Type u} [inst : Inhabited.{u + 1} α] (a : α) (l : List.{u} α),\n  @Eq.{u + 1} α (@List.head!.{u} α inst (@List.cons.{u} α a l)) a"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-ae7a570eb467a4d8eb074e3c1005e0780ccdafc741c3fe5046325e56a7ed6858","qualified_name":"List.head!_eq_head?_getD","statement":"∀ {α : Type u} [inst : Inhabited.{u + 1} α] (l : List.{u} α),\n  @Eq.{u + 1} α (@List.head!.{u} α inst l)\n    (@Option.getD.{u} α (@List.head?.{u} α l) (@Inhabited.default.{u + 1} α inst))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-1e445a882cec0e5405fc5920c4e47af4f27d3a16d6de2bf9b3b2d8ad368b1bb6","qualified_name":"List.head!_mem_head?","statement":"∀ {α : Type u} [inst : Inhabited.{u + 1} α] {l : List.{u} α},\n  @Ne.{u + 1} (List.{u} α) l (@List.nil.{u} α) →\n    @Membership.mem.{u, u} α (Option.{u} α) (@Option.instMembership.{u} α) (@List.head?.{u} α l)\n      (@List.head!.{u} α inst l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-ab1876633f5771a1eefb53efb477421141aa8914bb49bc54f9cff0201e062d70","qualified_name":"List.head!_mem_self","statement":"∀ {α : Type u} [inst : Inhabited.{u + 1} α] {l : List.{u} α},\n  @Ne.{u + 1} (List.{u} α) l (@List.nil.{u} α) →\n    @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l (@List.head!.{u} α inst l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-e664f87c2bea806eb7b2d5ceb1fb625f13acdecb2895f2de61dd8f8d28cca92a","qualified_name":"List.head!_nil","statement":"∀ {α : Type u} [inst : Inhabited.{u + 1} α],\n  @Eq.{u + 1} α (@List.head!.{u} α inst (@List.nil.{u} α)) (@Inhabited.default.{u + 1} α inst)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-78e187934f6fad987efbaa299875735c5540429e965da549b2665b0c08b65201","qualified_name":"List.head?_append_of_ne_nil","statement":"∀ {α : Type u} (l₁ : List.{u} α) {l₂ : List.{u} α},\n  @Ne.{u + 1} (List.{u} α) l₁ (@List.nil.{u} α) →\n    @Eq.{u + 1} (Option.{u} α)\n      (@List.head?.{u} α\n        (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n          (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) l₁ l₂))\n      (@List.head?.{u} α l₁)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-b783411d4112c74d18d27231f307502e1db5aa3056593eea11fee5366f292df9","qualified_name":"List.head?_flatten_replicate","statement":"∀ {α : Type u} {n : Nat},\n  @Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    ∀ (l : List.{u} α),\n      @Eq.{u + 1} (Option.{u} α) (@List.head?.{u} α (@List.flatten.{u} α (@List.replicate.{u} (List.{u} α) n l)))\n        (@List.head?.{u} α l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-4e59162f30df74a186fabd4bf820f7d64554e4d2c8cd77da0ee2714c01237842","qualified_name":"List.head_eq_getElem_zero","statement":"∀ {α : Type u} {l : List.{u} α} (hl : @Ne.{u + 1} (List.{u} α) l (@List.nil.{u} α)),\n  @Eq.{u + 1} α (@List.head.{u} α l hl)\n    (@GetElem.getElem.{u, 0, u} (List.{u} α) Nat α (fun as i => @LT.lt.{0} Nat instLTNat i (@List.length.{u} α as))\n      (@List.instGetElemNatLtLength.{u} α) l (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) ⋯)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-0f75bcd17ddd5200de3a5b22dbface19792bfd959fc7465d3ec6e94a5e5debf9","qualified_name":"List.idxOf_append_of_mem","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {a : α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l₁ a →\n    @Eq.{1} Nat\n      (@List.idxOf.{u} α inst a\n        (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n          (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) l₁ l₂))\n      (@List.idxOf.{u} α inst a l₁)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-1992a60ed9df66995007e57424933bcfcdcdfc2b1ccaa05e2e2c2782d4af9f3f","qualified_name":"List.idxOf_append_of_notMem","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {a : α},\n  a ∉ l₁ →\n    @Eq.{1} Nat\n      (@List.idxOf.{u} α inst a\n        (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n          (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) l₁ l₂))\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) (@List.length.{u} α l₁)\n        (@List.idxOf.{u} α inst a l₂))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-82886895084aae26e9211b8b4fd4c54c867eed166b9d2f6667109ddb46fdc2e7","qualified_name":"List.idxOf_cons_eq","statement":"∀ {α : Type u} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {a b : α} (l : List.{u} α),\n  @Eq.{u + 1} α b a →\n    @Eq.{1} Nat (@List.idxOf.{u} α inst a (@List.cons.{u} α b l))\n      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-8c060a43803f6e075ede2cb8ccb89431eed3e55a9e1b6f0cbb70a5dc06dafa67","qualified_name":"List.idxOf_cons_ne","statement":"∀ {α : Type u} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {a b : α} (l : List.{u} α),\n  @Ne.{u + 1} α b a → @Eq.{1} Nat (@List.idxOf.{u} α inst a (@List.cons.{u} α b l)) (@List.idxOf.{u} α inst a l).succ"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-c5d3f45affe575e6b7d1fa478d8c7642f6b52eb93cd668bc7b44ab457a723a1d","qualified_name":"List.idxOf_eq_length_iff","statement":"∀ {α : Type u} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {a : α} {l : List.{u} α},\n  Iff (@Eq.{1} Nat (@List.idxOf.{u} α inst a l) (@List.length.{u} α l)) (a ∉ l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-15007586091766e444f02faad75b1c42bd2f76c43ed106e126ca5cdd3a4d3789","qualified_name":"List.idxOf_eq_zero_iff_eq_nil_or_head_eq","statement":"∀ {α : Type u} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {l : List.{u} α} (a : α),\n  Iff (@Eq.{1} Nat (@List.idxOf.{u} α inst a l) (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n    (Or (@Eq.{u + 1} (List.{u} α) l (@List.nil.{u} α))\n      (@Eq.{u + 1} (Option.{u} α) (@List.head?.{u} α l) (@Option.some.{u} α a)))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-ba832f77e713c2369192b4a5ed0ef1b60870cd9c63d7d675d3cca64407be1ad2","qualified_name":"List.idxOf_eq_zero_iff_head_eq","statement":"∀ {α : Type u} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {l : List.{u} α}\n  (hl : @Ne.{u + 1} (List.{u} α) l (@List.nil.{u} α)) {a : α},\n  Iff (@Eq.{1} Nat (@List.idxOf.{u} α inst a l) (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n    (@Eq.{u + 1} α (@List.head.{u} α l hl) a)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-48284eef75f3904731c9b5a4d79d7c2bb8c299e31d623a9433c056ccf368f32f","qualified_name":"List.idxOf_get","statement":"∀ {α : Type u} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {a : α} {l : List.{u} α}\n  (h : @LT.lt.{0} Nat instLTNat (@List.idxOf.{u} α inst a l) (@List.length.{u} α l)),\n  @Eq.{u + 1} α (@List.get.{u} α l (@Fin.mk (@List.length.{u} α l) (@List.idxOf.{u} α inst a l) h)) a"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-080263f92a0f269ab5b4e1c06ca1b9d6f57abad1ee811a6cbc9ec40dc9f97ec3","qualified_name":"List.idxOf_getLast","statement":"∀ {α : Type u} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {l : List.{u} α}\n  (hl : @Ne.{u + 1} (List.{u} α) l (@List.nil.{u} α)),\n  @List.getLast.{u} α l hl ∉ @List.dropLast.{u} α l →\n    @Eq.{1} Nat (@List.idxOf.{u} α inst (@List.getLast.{u} α l hl) l)\n      (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) (@List.length.{u} α l)\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-cde1463462d8e0671b4b68e5ef72cbc1dae762d200cbe3ffced2488d693e3b79","qualified_name":"List.idxOf_inj","statement":"∀ {α : Type u} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {l : List.{u} α} {x y : α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x →\n    Iff (@Eq.{1} Nat (@List.idxOf.{u} α inst x l) (@List.idxOf.{u} α inst y l)) (@Eq.{u + 1} α x y)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-9cfebba5745883028ecf44d8ebbdaa03054bf632838548d51a57651f10282eb2","qualified_name":"List.idxOf_of_notMem","statement":"∀ {α : Type u} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {l : List.{u} α} {a : α},\n  a ∉ l → @Eq.{1} Nat (@List.idxOf.{u} α inst a l) (@List.length.{u} α l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-e51443bdb3f9ad7bdb585be87d077643bd31c52df72eb742aeb0fe6f92780a7d","qualified_name":"List.idxOf_tail_of_head_ne","statement":"∀ {α : Type u} {l : List.{u} α} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {a : α}\n  (hl : @Ne.{u + 1} (List.{u} α) l (@List.nil.{u} α)),\n  @Ne.{u + 1} α (@List.head.{u} α l hl) a →\n    @Eq.{1} Nat (@List.idxOf.{u} α inst a (@List.tail.{u} α l))\n      (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) (@List.idxOf.{u} α inst a l)\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-1b0cafa48dc7dfeccad7f6dc6892351d05eca62b75600a4d79d3dcf21662d2e4","qualified_name":"List.infix_flatMap_of_mem","statement":"∀ {α : Type u} {a : α} {as : List.{u} α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) as a →\n    ∀ (f : α → List.{u} α), @List.IsInfix.{u} α (f a) (@List.flatMap.{u, u} α α f as)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-54fbacb0cb137847ee214fd6d77e32d6d7b167c057f1661175a064387eb22ef2","qualified_name":"List.injective_foldl_comp","statement":"∀ {α : Type u} {l : List.{u} (α → α)} {f : α → α},\n  (∀ (f : α → α),\n      @Membership.mem.{u, u} (α → α) (List.{u} (α → α)) (@List.instMembership.{u} (α → α)) l f →\n        @Function.Injective.{u + 1, u + 1} α α f) →\n    @Function.Injective.{u + 1, u + 1} α α f →\n      @Function.Injective.{u + 1, u + 1} α α\n        (@List.foldl.{u, u} (α → α) (α → α) (@Function.comp.{u + 1, u + 1, u + 1} α α α) f l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-db95af8fa054b42c3ed8bbb03503ddb22874f510cb2803ad749124f65a420a6b","qualified_name":"List.insert_neg","statement":"∀ {α : Type u} [inst : DecidableEq.{u + 1} α] {x : α} {l : List.{u} α},\n  x ∉ l →\n    @Eq.{u + 1} (List.{u} α)\n      (@Insert.insert.{u, u} α (List.{u} α) (@List.instInsertOfDecidableEq_mathlib.{u} α inst) x l)\n      (@List.cons.{u} α x l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-5807fcea76f7af843b656bbe7582b1231a8af59ae489bf1dba6a6151d6dd156c","qualified_name":"List.insert_pos","statement":"∀ {α : Type u} [inst : DecidableEq.{u + 1} α] {x : α} {l : List.{u} α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x →\n    @Eq.{u + 1} (List.{u} α)\n      (@Insert.insert.{u, u} α (List.{u} α) (@List.instInsertOfDecidableEq_mathlib.{u} α inst) x l) l"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-ddeeefe04d947832f1a1a03354901762a3d6f2f4d42071d2796129cdc4bd3c5e","qualified_name":"List.instAssociativeAppend_mathlib","statement":"∀ {α : Type u}, @Std.Associative.{u + 1} (List.{u} α) (@Append.append.{u} (List.{u} α) (@List.instAppend.{u} α))"},{"kind":"definition","module":"Mathlib.Data.List.Basic","object_id":"object-c3e9e4e3d566dea777029856c09cc11afe8223fa5efae9a6f410421101f38433","qualified_name":"List.instDecidablePredForall","statement":"{α : Type u} →\n  (p : α → Prop) → [@DecidablePred.{u + 1} α p] → @DecidablePred.{u + 1} (List.{u} α) (@List.Forall.{u} α p)"},{"kind":"definition","module":"Mathlib.Data.List.Basic","object_id":"object-8d5462e40a9d41710965415db0f29f9e4ba1810d1bc27d60624b2057dc111fce","qualified_name":"List.instInsertOfDecidableEq_mathlib","statement":"{α : Type u} → [DecidableEq.{u + 1} α] → Insert.{u, u} α (List.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-2f2f83c250c8270b0dfff6ae1a8b60ca2e1c4e142b18f656c656f09180c17637","qualified_name":"List.instIsPartialOrderSublist","statement":"∀ {α : Type u}, IsPartialOrder.{u + 1} (List.{u} α) (@List.Sublist.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-7dbfc9ebbd37a71d24d1ddbce4a968c379564f70a5f1db824e2d173f4aac1b33","qualified_name":"List.instIsPreorderSubset","statement":"∀ {α : Type u},\n  IsPreorder.{u + 1} (List.{u} α) fun x1 x2 => @HasSubset.Subset.{u} (List.{u} α) (@List.instHasSubset.{u} α) x1 x2"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-dbd73ce84c92c7f2537bf1560a13972fee10260961bd4a7d89b3904342b513af","qualified_name":"List.instLawfulIdentityAppendNil_mathlib","statement":"∀ {α : Type u},\n  @Std.LawfulIdentity.{u + 1} (List.{u} α) (@Append.append.{u} (List.{u} α) (@List.instAppend.{u} α)) (@List.nil.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-71339bd9a0f70b7d1482b05d58f84c38c4a9b959996fb796fd7ea4dd1a6afe26","qualified_name":"List.instLawfulSingleton_mathlib","statement":"∀ {α : Type u} [inst : DecidableEq.{u + 1} α],\n  @LawfulSingleton.{u, u} α (List.{u} α) (@List.instEmptyCollection.{u} α)\n    (@List.instInsertOfDecidableEq_mathlib.{u} α inst) (@List.instSingletonList.{u} α)"},{"kind":"definition","module":"Mathlib.Data.List.Basic","object_id":"object-1bafb5207eb582dafd5b270a663c5219668ba21b5ff4106cecb2cdbb12fe7ece","qualified_name":"List.instSingletonList","statement":"{α : Type u} → Singleton.{u, u} α (List.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-68a2d767f900b34f44780435c4506d02c359eec13aac0bd8ffd78e3b85a4c9b4","qualified_name":"List.left_le_of_mem_range'","statement":"∀ {a b s x : Nat},\n  @Membership.mem.{0, 0} Nat (List.{0} Nat) (@List.instMembership.{0} Nat) (List.range' a b s) x →\n    @LE.le.{0} Nat instLENat a x"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-e2cd5d0ce6896168ceec5f3a0417775b96f24cde927a069a7d3e3b5ecdf125f1","qualified_name":"List.length_eq_four","statement":"∀ {α : Type u} {l : List.{u} α},\n  Iff (@Eq.{1} Nat (@List.length.{u} α l) (@OfNat.ofNat.{0} Nat (nat_lit 4) (instOfNatNat (nat_lit 4))))\n    (∃ a b c d,\n      @Eq.{u + 1} (List.{u} α) l\n        (@List.cons.{u} α a (@List.cons.{u} α b (@List.cons.{u} α c (@List.cons.{u} α d (@List.nil.{u} α))))))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d6a2be4e0565e8bf2556d671f82b333c1694a722bcd4a4acb5fb8563aa530dd4","qualified_name":"List.length_eq_length_filter_add","statement":"∀ {α : Type u} {l : List.{u} α} (f : α → Bool),\n  @Eq.{1} Nat (@List.length.{u} α l)\n    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) (@List.length.{u} α (@List.filter.{u} α f l))\n      (@List.length.{u} α (@List.filter.{u} α (fun x => (f x).not) l)))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-2b52ac6d6876b37ff76789d0a4df4b31684c66e57f7e3e5901f56c6f71c019ae","qualified_name":"List.length_eq_succ_iff","statement":"∀ {α : Type u} {n : Nat} {l : List.{u} α},\n  Iff\n    (@Eq.{1} Nat (@List.length.{u} α l)\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) n\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n    (∃ h t, And (@Eq.{u + 1} (List.{u} α) (@List.cons.{u} α h t) l) (@Eq.{1} Nat (@List.length.{u} α t) n))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-eec88959ae8347b7e947acd8ebd3c86a77d0430cddb64c30da06fd501d0af848","qualified_name":"List.length_eq_three","statement":"∀ {α : Type u} {l : List.{u} α},\n  Iff (@Eq.{1} Nat (@List.length.{u} α l) (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))))\n    (∃ a b c,\n      @Eq.{u + 1} (List.{u} α) l (@List.cons.{u} α a (@List.cons.{u} α b (@List.cons.{u} α c (@List.nil.{u} α)))))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-6d6f83bfcef1538b7e17930d1a8db0db0b2ba017d8336e84ca8d975681472eaf","qualified_name":"List.length_eq_two","statement":"∀ {α : Type u} {l : List.{u} α},\n  Iff (@Eq.{1} Nat (@List.length.{u} α l) (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n    (∃ a b, @Eq.{u + 1} (List.{u} α) l (@List.cons.{u} α a (@List.cons.{u} α b (@List.nil.{u} α))))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-370dfbf5f77d91bdcdc84ab2a62c8cdcac224e3eaa16818662d482634d2e39da","qualified_name":"List.length_eq_two'","statement":"∀ {α : Type u} {l : List.{u} α} (h : @Ne.{u + 1} (List.{u} α) l (@List.nil.{u} α)),\n  Iff (@Eq.{1} Nat (@List.length.{u} α l) (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n    (@Eq.{u + 1} (List.{u} α) l\n      (@List.cons.{u} α (@List.head.{u} α l h) (@List.cons.{u} α (@List.getLast.{u} α l h) (@List.nil.{u} α))))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-fa73223d1b75a05f98e812e049518403a94afacbeea40ff4739000720da5f407","qualified_name":"List.length_eraseIdx_add_one","statement":"∀ {ι : Type u_1} {l : List.{u_1} ι} {i : Nat},\n  @LT.lt.{0} Nat instLTNat i (@List.length.{u_1} ι l) →\n    @Eq.{1} Nat\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n        (@List.length.{u_1} ι (@List.eraseIdx.{u_1} ι l i))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (@List.length.{u_1} ι l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-157b886974a0825c101b0fb26ba631f4424b9d1b37b5c7607a0b6a1f268b41c2","qualified_name":"List.length_eraseP_add_one","statement":"∀ {α : Type u} {p : α → Bool} {l : List.{u} α} {a : α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a →\n    @Eq.{1} Bool (p a) Bool.true →\n      @Eq.{1} Nat\n        (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) (@List.length.{u} α (@List.eraseP.{u} α p l))\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n        (@List.length.{u} α l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-6240c6cef234bd328e38b807201a9276cb797c05932238f1ef8c58017b0c25c6","qualified_name":"List.length_erase_add_one","statement":"∀ {α : Type u} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {a : α} {l : List.{u} α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a →\n    @Eq.{1} Nat\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) (@List.length.{u} α (@List.erase.{u} α inst l a))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (@List.length.{u} α l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-aec97b72d57d1045ae8189b69bf1d4c57dd87bb3b41ce2dff81c557546ed1f4f","qualified_name":"List.length_injective","statement":"∀ {α : Type u} [Subsingleton.{u + 1} α], @Function.Injective.{u + 1, 1} (List.{u} α) Nat (@List.length.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-878ac6f272f89ee97fad9aac9710358e512c49588fcc20e11e8f4fa4b243d081","qualified_name":"List.length_injective_iff","statement":"∀ {α : Type u}, Iff (@Function.Injective.{u + 1, 1} (List.{u} α) Nat (@List.length.{u} α)) (Subsingleton.{u + 1} α)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-f5abdd915e0f48a6c431e6ce75b29178ad82554b759b7610920944867d8c0acc","qualified_name":"List.length_pos_iff_ne_nil","statement":"∀ {α : Type u} {l : List.{u} α},\n  Iff (@LT.lt.{0} Nat instLTNat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) (@List.length.{u} α l))\n    (@Ne.{u + 1} (List.{u} α) l (@List.nil.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-28f0cf0d9150a49a1c89490fec6c964aeb09aa9748468f3757b3d3aa78090f54","qualified_name":"List.length_pos_of_ne_nil","statement":"∀ {α : Type u_1} {l : List.{u_1} α},\n  @Ne.{u_1 + 1} (List.{u_1} α) l (@List.nil.{u_1} α) →\n    @LT.lt.{0} Nat instLTNat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) (@List.length.{u_1} α l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-230c25667dbc428ed8163d379c3e9a2534c3f35f54eb3cc4f6c3c1987e3e556d","qualified_name":"List.lookup_graph","statement":"∀ {α : Type u} {β : Type v} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] (f : α → β) {a : α} {as : List.{u} α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) as a →\n    @Eq.{v + 1} (Option.{v} β)\n      (@List.lookup.{u, v} α β inst a\n        (@List.map.{u, max u v} α (Prod.{u, v} α β) (fun x => @Prod.mk.{u, v} α β x (f x)) as))\n      (@Option.some.{v} β (f a))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-444ba963a0fecf6b6beb9f1d56d550dbabfb7e8b9c1c53b0ca0e26eb9f15640c","qualified_name":"List.map_bijective_iff","statement":"∀ {α : Type u} {β : Type v} {f : α → β},\n  Iff (@Function.Bijective.{u + 1, v + 1} (List.{u} α) (List.{v} β) (@List.map.{u, v} α β f))\n    (@Function.Bijective.{u + 1, v + 1} α β f)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-7b87fe6cc2e382019d16f3adf9bc605554e6b670773e2cef3b598ac1c0c42b37","qualified_name":"List.map_comp_map","statement":"∀ {α : Type u} {β : Type v} {γ : Type w} (g : β → γ) (f : α → β),\n  @Eq.{max (u + 1) (w + 1)} (List.{u} α → List.{w} γ)\n    (@Function.comp.{u + 1, v + 1, w + 1} (List.{u} α) (List.{v} β) (List.{w} γ) (@List.map.{v, w} β γ g)\n      (@List.map.{u, v} α β f))\n    (@List.map.{u, w} α γ (@Function.comp.{u + 1, v + 1, w + 1} α β γ g f))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-c89d62e68508829c8c1f6a345dcf3a8d03d1cde388a11547acdf3f2652500a6b","qualified_name":"List.map_diff","statement":"∀ {α : Type u} {β : Type v} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] [inst_2 : BEq.{v} β] [@LawfulBEq.{v} β inst_2]\n  {f : α → β},\n  @Function.Injective.{u + 1, v + 1} α β f →\n    ∀ {l₁ l₂ : List.{u} α},\n      @Eq.{v + 1} (List.{v} β) (@List.map.{u, v} α β f (@List.diff.{u} α inst l₁ l₂))\n        (@List.diff.{v} β inst_2 (@List.map.{u, v} α β f l₁) (@List.map.{u, v} α β f l₂))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-e4bbab96ebbe4b90585d7969015d515dd6ac728f6c7a30acecb3181074f5370f","qualified_name":"List.map_eq_map","statement":"∀ {α β : Type u_2} (f : α → β) (l : List.{u_2} α),\n  @Eq.{u_2 + 1} (List.{u_2} β) (@Functor.map.{u_2, u_2} List.{u_2} List.instFunctor.{u_2} α β f l)\n    (@List.map.{u_2, u_2} α β f l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-61fddab35341ff011f8073d743be1db5929d7f071f7806456a1b1c46c27a604c","qualified_name":"List.map_erase","statement":"∀ {α : Type u} {β : Type v} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] [inst_2 : BEq.{v} β] [@LawfulBEq.{v} β inst_2]\n  {f : α → β},\n  @Function.Injective.{u + 1, v + 1} α β f →\n    ∀ {a : α} (l : List.{u} α),\n      @Eq.{v + 1} (List.{v} β) (@List.map.{u, v} α β f (@List.erase.{u} α inst l a))\n        (@List.erase.{v} β inst_2 (@List.map.{u, v} α β f l) (f a))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-a83d26062aef5833cbdffad9301e0e5f4a6250e45941c941f857ff230f37b486","qualified_name":"List.map_filter","statement":"∀ {α : Type u} {β : Type v} (p : α → Bool) {f : α → β},\n  @Function.Injective.{u + 1, v + 1} α β f →\n    ∀ (l : List.{u} α)\n      [inst : @DecidablePred.{v + 1} β fun b => ∃ a, And (@Eq.{1} Bool (p a) Bool.true) (@Eq.{v + 1} β (f a) b)],\n      @Eq.{v + 1} (List.{v} β) (@List.map.{u, v} α β f (@List.filter.{u} α p l))\n        (@List.filter.{v} β\n          (fun b => @Decidable.decide (∃ a, And (@Eq.{1} Bool (p a) Bool.true) (@Eq.{v + 1} β (f a) b)) (inst b))\n          (@List.map.{u, v} α β f l))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-8bd7e76c116049b76ec46bb4d4351b343ab5ba42c189934f2d84a6078b6bc83e","qualified_name":"List.map_foldl_erase","statement":"∀ {α : Type u} {β : Type v} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] [inst_2 : BEq.{v} β] [@LawfulBEq.{v} β inst_2]\n  {f : α → β},\n  @Function.Injective.{u + 1, v + 1} α β f →\n    ∀ {l₁ l₂ : List.{u} α},\n      @Eq.{v + 1} (List.{v} β)\n        (@List.map.{u, v} α β f (@List.foldl.{u, u} (List.{u} α) α (@List.erase.{u} α inst) l₁ l₂))\n        (@List.foldl.{v, u} (List.{v} β) α (fun l a => @List.erase.{v} β inst_2 l (f a)) (@List.map.{u, v} α β f l₁) l₂)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-b4f475dacbc7d83c8c0056dfa381168333dcbe42c83e1485cf303af8b74c2cda","qualified_name":"List.map_injective_iff","statement":"∀ {α : Type u} {β : Type v} {f : α → β},\n  Iff (@Function.Injective.{u + 1, v + 1} (List.{u} α) (List.{v} β) (@List.map.{u, v} α β f))\n    (@Function.Injective.{u + 1, v + 1} α β f)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-f53e74ca95dcfe8c79b4e647ea70dece3431ba4be49f6ea8723f9227a06f2592","qualified_name":"List.map_involutive_iff","statement":"∀ {α : Type u} {f : α → α},\n  Iff (@Function.Involutive.{u + 1} (List.{u} α) (@List.map.{u, u} α α f)) (@Function.Involutive.{u + 1} α f)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-b5e1ce28e3c6d8dd9ccdc621a465f002642d5d030991c1e7fa1b4a36740ce92b","qualified_name":"List.map_leftInverse_iff","statement":"∀ {α : Type u} {β : Type v} {f : α → β} {g : β → α},\n  Iff (@Function.LeftInverse.{v + 1, u + 1} (List.{v} β) (List.{u} α) (@List.map.{u, v} α β f) (@List.map.{v, u} β α g))\n    (@Function.LeftInverse.{v + 1, u + 1} β α f g)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-32605eb1d8907a3190d20804970bf22d62f9e5c669873776b825fee35686f674","qualified_name":"List.map_reverseAux","statement":"∀ {α : Type u} {β : Type v} (f : α → β) (l₁ l₂ : List.{u} α),\n  @Eq.{v + 1} (List.{v} β) (@List.map.{u, v} α β f (@List.reverseAux.{u} α l₁ l₂))\n    (@List.reverseAux.{v} β (@List.map.{u, v} α β f l₁) (@List.map.{u, v} α β f l₂))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-8886150af5a5a80fca4b6d3a1156fa4f48c8b239a94aaf65c9eb3be04bbb28e1","qualified_name":"List.map_rightInverse_iff","statement":"∀ {α : Type u} {β : Type v} {f : α → β} {g : β → α},\n  Iff\n    (@Function.RightInverse.{v + 1, u + 1} (List.{v} β) (List.{u} α) (@List.map.{u, v} α β f) (@List.map.{v, u} β α g))\n    (@Function.RightInverse.{v + 1, u + 1} β α f g)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-c56946ae1d52eaa1c7cdbf48fac8872c64e79fbc13d6e63fc4b50b8b6738faf9","qualified_name":"List.map_subset_iff","statement":"∀ {α : Type u} {β : Type v} {l₁ l₂ : List.{u} α} (f : α → β),\n  @Function.Injective.{u + 1, v + 1} α β f →\n    Iff\n      (@HasSubset.Subset.{v} (List.{v} β) (@List.instHasSubset.{v} β) (@List.map.{u, v} α β f l₁)\n        (@List.map.{u, v} α β f l₂))\n      (@HasSubset.Subset.{u} (List.{u} α) (@List.instHasSubset.{u} α) l₁ l₂)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-e080ea0e890ae51dd42848b57a5e18908b5245b2e70bec76486f4f615ad765e8","qualified_name":"List.map_surjective_iff","statement":"∀ {α : Type u} {β : Type v} {f : α → β},\n  Iff (@Function.Surjective.{u + 1, v + 1} (List.{u} α) (List.{v} β) (@List.map.{u, v} α β f))\n    (@Function.Surjective.{u + 1, v + 1} α β f)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-ec82d38222eefa4503fc0aa685bb25d82edf9b5567d2a7bcd0ce6f95ccd7f653","qualified_name":"List.mem_dropLast_iff_idxOf_lt","statement":"∀ {α : Type u} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {l : List.{u} α} {a : α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a →\n    Iff (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.dropLast.{u} α l) a)\n      (@LT.lt.{0} Nat instLTNat (@List.idxOf.{u} α inst a l)\n        (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) (@List.length.{u} α l)\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-4eda4675ef0dd83436208ae948db6e6143034b47836bd142990e484ddaf5bdde","qualified_name":"List.mem_dropLast_of_mem_of_ne_getLast","statement":"∀ {α : Type u} {l : List.{u} α} {a : α} (ha : @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a),\n  @Ne.{u + 1} α a (@List.getLast.{u} α l ⋯) →\n    @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.dropLast.{u} α l) a"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-1fe9f310cf7c34ee1fb048e30e71793a43d9d2861be55e5f1e4a709a2ef84b2d","qualified_name":"List.mem_dropLast_of_mem_of_ne_getLast?","statement":"∀ {α : Type u} {l : List.{u} α} {a : α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a →\n    @Ne.{u + 1} (Option.{u} α) (@Option.some.{u} α a) (@List.getLast?.{u} α l) →\n      @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.dropLast.{u} α l) a"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-10ffbbb563c7cf9a56ab395cef916e883aa69da7d0b662db6a33b529332b0c21","qualified_name":"List.mem_dropLast_of_mem_of_ne_getLastD","statement":"∀ {α : Type u} {l : List.{u} α} {a d : α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a →\n    @Ne.{u + 1} α a (@List.getLastD.{u} α l d) →\n      @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.dropLast.{u} α l) a"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-44d188f46b50feafbb9f4ee0feb15a3efe49aeecd47065c30c58b41aa149c982","qualified_name":"List.mem_filter_of_mem","statement":"∀ {α : Type u} {p : α → Bool} {a : α} {l : List.{u} α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a →\n    @Eq.{1} Bool (p a) Bool.true →\n      @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.filter.{u} α p l) a"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-0c0883a59f00cb0b60c73bd9452d1432743ad4c650297aaf7011bb76e158671a","qualified_name":"List.mem_getLast?_append_of_mem_getLast?","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α} {x : α},\n  @Membership.mem.{u, u} α (Option.{u} α) (@Option.instMembership.{u} α) (@List.getLast?.{u} α l₂) x →\n    @Membership.mem.{u, u} α (Option.{u} α) (@Option.instMembership.{u} α)\n      (@List.getLast?.{u} α\n        (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n          (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) l₁ l₂))\n      x"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-8cd6996fc35c2823ac1aba5a13ac7ee85a30c608e70495f309e519227ee87de7","qualified_name":"List.mem_getLast?_cons","statement":"∀ {α : Type u} {x y : α} {l : List.{u} α},\n  @Membership.mem.{u, u} α (Option.{u} α) (@Option.instMembership.{u} α) (@List.getLast?.{u} α l) x →\n    @Membership.mem.{u, u} α (Option.{u} α) (@Option.instMembership.{u} α) (@List.getLast?.{u} α (@List.cons.{u} α y l))\n      x"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-388548a36b9e3dc770677584acb723c6b07a2a1d0b65508353ac6ec246a9be9a","qualified_name":"List.mem_getLast?_eq_getLast","statement":"∀ {α : Type u} {l : List.{u} α} {x : α},\n  @Membership.mem.{u, u} α (Option.{u} α) (@Option.instMembership.{u} α) (@List.getLast?.{u} α l) x →\n    ∃ (h : @Ne.{u + 1} (List.{u} α) l (@List.nil.{u} α)), @Eq.{u + 1} α x (@List.getLast.{u} α l h)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-7499ab70b312e4a00dd362fe53f09a02b04337d76410e047bc9953d0ef3f6555","qualified_name":"List.mem_head?_append_of_mem_head?","statement":"∀ {α : Type u} {s t : List.{u} α} {x : α},\n  @Membership.mem.{u, u} α (Option.{u} α) (@Option.instMembership.{u} α) (@List.head?.{u} α s) x →\n    @Membership.mem.{u, u} α (Option.{u} α) (@Option.instMembership.{u} α)\n      (@List.head?.{u} α\n        (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n          (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) s t))\n      x"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d472ad714f465dc699475833cd7f282325365834a975f26e31f2ecdf1846cd89","qualified_name":"List.mem_map_of_injective","statement":"∀ {α : Type u} {β : Type v} {f : α → β},\n  @Function.Injective.{u + 1, v + 1} α β f →\n    ∀ {a : α} {l : List.{u} α},\n      Iff (@Membership.mem.{v, v} β (List.{v} β) (@List.instMembership.{v} β) (@List.map.{u, v} α β f l) (f a))\n        (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d3dcf1dde976fe0805ef1d5d414f235e6f3d3c0f7d14e43d4b2c3e0e01c6b78a","qualified_name":"List.mem_map_of_involutive","statement":"∀ {α : Type u} {f : α → α},\n  @Function.Involutive.{u + 1} α f →\n    ∀ {a : α} {l : List.{u} α},\n      Iff (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.map.{u, u} α α f l) a)\n        (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l (f a))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-088aef0b29aa28c24363805a04e8415bddbf0a99989e370605a4b0db6f582df2","qualified_name":"List.mem_of_mem_filter","statement":"∀ {α : Type u} {p : α → Bool} {a : α} {l : List.{u} α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.filter.{u} α p l) a →\n    @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-d8e3b1f0c971fea6c061cd4825e68ca727200d81c8d4dcc4ddd61b0ea2fc8b8d","qualified_name":"List.mem_pair","statement":"∀ {α : Type u} {a b c : α},\n  Iff\n    (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α)\n      (@List.cons.{u} α b (@List.cons.{u} α c (@List.nil.{u} α))) a)\n    (Or (@Eq.{u + 1} α a b) (@Eq.{u + 1} α a c))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-b8f59a4471308e57d5f37da6c6a03cd9ef930ddb5068f6a2c244d46374caa994","qualified_name":"List.mem_pure","statement":"∀ {α : Type u} (x y : α),\n  Iff\n    (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α)\n      (@Pure.pure.{u, u} List.{u}\n        (@Applicative.toPure.{u, u} List.{u}\n          (@Alternative.toApplicative.{u, u} List.{u}\n            (@AlternativeMonad.toAlternative.{u, u} List.{u} List.instAlternativeMonad_mathlib.{u})))\n        α y)\n      x)\n    (@Eq.{u + 1} α x y)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-0897e9fd72a8d5570c81ceb13c8637a99527b5289d1b8a7a8e9e845fec499e38","qualified_name":"List.mem_take_iff_idxOf_lt","statement":"∀ {α : Type u} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {a : α} {n : Nat} {l : List.{u} α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l a →\n    Iff (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.take.{u} α n l) a)\n      (@LT.lt.{0} Nat instLTNat (@List.idxOf.{u} α inst a l) n)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-f56b1b22d4cd7b3526862b32507dd055eda404ff15caaa8f42e8b6a0faf4cb6e","qualified_name":"List.monotone_filter_right","statement":"∀ {α : Type u} (l : List.{u} α) ⦃p q : α → Bool⦄,\n  (∀ (a : α), @Eq.{1} Bool (p a) Bool.true → @Eq.{1} Bool (q a) Bool.true) →\n    @List.Sublist.{u} α (@List.filter.{u} α p l) (@List.filter.{u} α q l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-11ec6c9cec8fa4bc7d8950b964fb0e56cdfc6a1ba826b3d2399a2da46b440c53","qualified_name":"List.notMem_of_subset","statement":"∀ {α : Type u} {l l₁ : List.{u} α},\n  @HasSubset.Subset.{u} (List.{u} α) (@List.instHasSubset.{u} α) l l₁ → ∀ {a : α}, a ∉ l₁ → a ∉ l"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-b9bf90aebe054487ef18a785bd62f92da3645dfb4d28a51dc03136f0b17d736c","qualified_name":"List.of_mem_filter","statement":"∀ {α : Type u} {p : α → Bool} {a : α} {l : List.{u} α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.filter.{u} α p l) a →\n    @Eq.{1} Bool (p a) Bool.true"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-ff3e5c38f12ec6fea21ed328a3b6d40bc2133d05eb5157a08cd38990763466aa","qualified_name":"List.or_exists_of_exists_mem_cons","statement":"∀ {α : Type u} {p : α → Prop} {a : α} {l : List.{u} α},\n  (∃ x, And (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.cons.{u} α a l) x) (p x)) →\n    Or (p a) (∃ x, And (@Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x) (p x))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-e3878e7b6d4bdd2835e647df2caed65c7f86f1ebd754453d312084f47d8cc9a9","qualified_name":"List.perm_reverse","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α}, Iff (@List.Perm.{u} α l₁ (@List.reverse.{u} α l₂)) (@List.Perm.{u} α l₁ l₂)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-5fcf5979e0bbfa7a29a2d471c4febab5b9155411014ac32a0278d26f1a2638a6","qualified_name":"List.range'_0","statement":"∀ (a b : Nat),\n  @Eq.{1} (List.{0} Nat) (List.range' a b (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n    (@List.replicate.{0} Nat b a)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-3279b7dc28f4636381d5ff50f870eb9b4686119bc4d6a7c50faaa9e5310ed3b8","qualified_name":"List.replicate_add","statement":"∀ {α : Type u} (m n : Nat) (a : α),\n  @Eq.{u + 1} (List.{u} α)\n    (@List.replicate.{u} α (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) m n) a)\n    (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n      (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) (@List.replicate.{u} α m a)\n      (@List.replicate.{u} α n a))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-3fe18c8716bcd7503c865c980ac4f91dc3d22674e656f6fa40d8bcfa7e0cb139","qualified_name":"List.replicate_left_inj","statement":"∀ {α : Type u} {a : α} {n m : Nat},\n  Iff (@Eq.{u + 1} (List.{u} α) (@List.replicate.{u} α n a) (@List.replicate.{u} α m a)) (@Eq.{1} Nat n m)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-a91991939075d86d96289f75f16df74085a33a3c3ee767e519e673aa93e00a3c","qualified_name":"List.replicate_left_injective","statement":"∀ {α : Type u} (a : α), @Function.Injective.{1, u + 1} Nat (List.{u} α) fun x => @List.replicate.{u} α x a"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-40d241f79693d5ac3570f38b70390657faf2ec1853b3fdfb773cc26b8aafb202","qualified_name":"List.replicate_right_inj","statement":"∀ {α : Type u} {a b : α} {n : Nat},\n  @Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    Iff (@Eq.{u + 1} (List.{u} α) (@List.replicate.{u} α n a) (@List.replicate.{u} α n b)) (@Eq.{u + 1} α a b)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-9229344941e1880f14d90158734dcb61bfec148ef788f83454ad8a9302dd9c11","qualified_name":"List.replicate_right_inj'","statement":"∀ {α : Type u} {a b : α} {n : Nat},\n  Iff (@Eq.{u + 1} (List.{u} α) (@List.replicate.{u} α n a) (@List.replicate.{u} α n b))\n    (Or (@Eq.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) (@Eq.{u + 1} α a b))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-e65de9b0eb0904e90924dcb775ff1673da1dd57f2021e11a79a6a0585459af82","qualified_name":"List.replicate_right_injective","statement":"∀ {α : Type u} {n : Nat},\n  @Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    @Function.Injective.{u + 1, u + 1} α (List.{u} α) (@List.replicate.{u} α n)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-09aefac11d77b5921caca2ae032469cce8eb508b8bb9a5e1056302688952e691","qualified_name":"List.replicate_subset_singleton","statement":"∀ {α : Type u} (n : Nat) (a : α),\n  @HasSubset.Subset.{u} (List.{u} α) (@List.instHasSubset.{u} α) (@List.replicate.{u} α n a)\n    (@List.cons.{u} α a (@List.nil.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-781ca1e3346fe9d559bfaf8b26c614170693d0e0762424013c57e1acb4488190","qualified_name":"List.reverse_bijective","statement":"∀ {α : Type u}, @Function.Bijective.{u + 1, u + 1} (List.{u} α) (List.{u} α) (@List.reverse.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-9cba4748de01e834d12507a60c40a4992709888202f13f8bffe50b83dbd60c57","qualified_name":"List.reverse_concat'","statement":"∀ {α : Type u} (l : List.{u} α) (a : α),\n  @Eq.{u + 1} (List.{u} α)\n    (@List.reverse.{u} α\n      (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n        (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) l (@List.cons.{u} α a (@List.nil.{u} α))))\n    (@List.cons.{u} α a (@List.reverse.{u} α l))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-13f56de529833a4f400c6170c4663e2cb891c9a2af4afb1cebc26d06e4ee06ac","qualified_name":"List.reverse_cons'","statement":"∀ {α : Type u} (a : α) (l : List.{u} α),\n  @Eq.{u + 1} (List.{u} α) (@List.reverse.{u} α (@List.cons.{u} α a l)) (@List.concat.{u} α (@List.reverse.{u} α l) a)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-e115d71386df3fd572f2f1ae79a5e0d0aa5fe1a014dbf53180a3941b450b2f60","qualified_name":"List.reverse_foldl","statement":"∀ {α : Type u} {l : List.{u} α},\n  @Eq.{u + 1} (List.{u} α)\n    (@List.reverse.{u} α (@List.foldl.{u, u} (List.{u} α) α (fun t h => @List.cons.{u} α h t) (@List.nil.{u} α) l)) l"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-37bfdbed6368cbb9f653d5121caccbfe566432495cf8f20551ec351c44d985ea","qualified_name":"List.reverse_injective","statement":"∀ {α : Type u}, @Function.Injective.{u + 1, u + 1} (List.{u} α) (List.{u} α) (@List.reverse.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-68a17a0b753dba775cedcc8445b03b5403f9f10bb4d7b9da8eda578b5c4229e2","qualified_name":"List.reverse_involutive","statement":"∀ {α : Type u}, @Function.Involutive.{u + 1} (List.{u} α) (@List.reverse.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-4ebd87c00ca2e3f8dfbce5f24aea16c9e31e97f2c2764248116ea092a08711c4","qualified_name":"List.reverse_perm'","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α}, Iff (@List.Perm.{u} α (@List.reverse.{u} α l₁) l₂) (@List.Perm.{u} α l₁ l₂)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-924129f1ed0f2526fb5c2a5ef9a548521b0196e430d619fe03a14f7b71e024e3","qualified_name":"List.reverse_surjective","statement":"∀ {α : Type u}, @Function.Surjective.{u + 1, u + 1} (List.{u} α) (List.{u} α) (@List.reverse.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-39ac3c3387ed237d6dbd7360a28a793eb747578ab3d4a6bbf0f587b7bd10a206","qualified_name":"List.setOfPred_mem_cons","statement":"∀ {α : Type u} (l : List.{u} α) (a : α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun x =>\n      @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.cons.{u} α a l) x)\n    (@Insert.insert.{u, u} α (Set.{u} α) (@Set.instInsert.{u} α) a\n      (@Set.ofPred.{u} α fun x => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-0e034e01f0fa7cf2ef1bc227bb785ef11998fdfa301d1279b9c4968610660d41","qualified_name":"List.set_of_mem_cons","statement":"∀ {α : Type u} (l : List.{u} α) (a : α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun x =>\n      @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.cons.{u} α a l) x)\n    (@Insert.insert.{u, u} α (Set.{u} α) (@Set.instInsert.{u} α) a\n      (@Set.ofPred.{u} α fun x => @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) l x))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-864d1a14a736561cc845447ef593760aa3fd5614d1ae1f6d7795a2af96e8f17a","qualified_name":"List.singleton_eq","statement":"∀ {α : Type u} (x : α),\n  @Eq.{u + 1} (List.{u} α) (@Singleton.singleton.{u, u} α (List.{u} α) (@List.instSingletonList.{u} α) x)\n    (@List.cons.{u} α x (@List.nil.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-6101a4508e8cb6f59404b6b5a72ba2b57b83e336ae3aa77f4458aa03ef2b218a","qualified_name":"List.singleton_injective","statement":"∀ {α : Type u}, @Function.Injective.{u + 1, u + 1} α (List.{u} α) fun a => @List.cons.{u} α a (@List.nil.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-7522f94a5bf0ae476475591e01e3c1a3a42630ae9bcb7ab2a0c63483e4543113","qualified_name":"List.sublist_cons_of_sublist","statement":"∀ {α : Type u} {l₁ l₂ : List.{u} α} (a : α), @List.Sublist.{u} α l₁ l₂ → @List.Sublist.{u} α l₁ (@List.cons.{u} α a l₂)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-e75babd5ff98a723f36633a5ba383d504b3451ae2a5f7b39d61688ccc9b21691","qualified_name":"List.sublist_singleton","statement":"∀ {α : Type u} {l : List.{u} α} {a : α},\n  Iff (@List.Sublist.{u} α l (@List.cons.{u} α a (@List.nil.{u} α)))\n    (Or (@Eq.{u + 1} (List.{u} α) l (@List.nil.{u} α))\n      (@Eq.{u + 1} (List.{u} α) l (@List.cons.{u} α a (@List.nil.{u} α))))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-fbc988cb8b6fe215ee9709de775b850912d63b522ffbe5a5d04a5aebcdb82714","qualified_name":"List.subset_singleton_iff","statement":"∀ {α : Type u} {a : α} {L : List.{u} α},\n  Iff (@HasSubset.Subset.{u} (List.{u} α) (@List.instHasSubset.{u} α) L (@List.cons.{u} α a (@List.nil.{u} α)))\n    (∃ n, @Eq.{u + 1} (List.{u} α) L (@List.replicate.{u} α n a))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-8c74e55752fb6be709c255132ccb791242dd9509cba00d7efa057d75a7831585","qualified_name":"List.succ_idxOf_lt_length_of_mem_dropLast","statement":"∀ {α : Type u} [inst : BEq.{u} α] [@LawfulBEq.{u} α inst] {l : List.{u} α} {a : α},\n  @Membership.mem.{u, u} α (List.{u} α) (@List.instMembership.{u} α) (@List.dropLast.{u} α l) a →\n    @LT.lt.{0} Nat instLTNat\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) (@List.idxOf.{u} α inst a l)\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (@List.length.{u} α l)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-fd36289903076f9fafa5002f8ce1070b0aaa2ea732cee8bb5649ed812a009236","qualified_name":"List.surjective_head!","statement":"∀ {α : Type u} [inst : Inhabited.{u + 1} α], @Function.Surjective.{u + 1, u + 1} (List.{u} α) α (@List.head!.{u} α inst)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-acf308bc77ffe3c058071f642cee9f77434fe74b5c44bb548a3842964cbebfe0","qualified_name":"List.surjective_head?","statement":"∀ {α : Type u}, @Function.Surjective.{u + 1, u + 1} (List.{u} α) (Option.{u} α) (@List.head?.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-fa0a75e82762a561eed1f44e6e7f08fc7a5c699aeeca0ef2757b606475080fef","qualified_name":"List.surjective_tail","statement":"∀ {α : Type u}, @Function.Surjective.{u + 1, u + 1} (List.{u} α) (List.{u} α) (@List.tail.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-212572421f6d67530f4e379e59decacf2a2a979f597f5208e8e582ccd36e9548","qualified_name":"List.tail_append_singleton_of_ne_nil","statement":"∀ {α : Type u} {a : α} {l : List.{u} α},\n  @Ne.{u + 1} (List.{u} α) l (@List.nil.{u} α) →\n    @Eq.{u + 1} (List.{u} α)\n      (@List.tail.{u} α\n        (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n          (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) l (@List.cons.{u} α a (@List.nil.{u} α))))\n      (@HAppend.hAppend.{u, u, u} (List.{u} α) (List.{u} α) (List.{u} α)\n        (@instHAppendOfAppend.{u} (List.{u} α) (@List.instAppend.{u} α)) (@List.tail.{u} α l)\n        (@List.cons.{u} α a (@List.nil.{u} α)))"},{"kind":"theorem","module":"Mathlib.Data.List.Basic","object_id":"object-ca9835fdf888fe1614856f024687b0c5c7f5c1aa02f437950aa1b2add98b3c5d","qualified_name":"List.tail_eq_nil_iff","statement":"∀ {α : Type u} {l : List.{u} α},\n  Iff (@Eq.{u + 1} (List.{u} α) (@List.tail.{u} α l) (@List.nil.{u} α))\n    (@LE.le.{0} Nat instLENat (@List.length.{u} α l) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-25d72175c1861c06ddbdda31ab3fa35e2902919080decf6c2a076f63c6bd26c3","qualified_name":"List.toFinset_filter","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s : List.{u_1} α) (p : α → Bool),\n  @Eq.{u_1 + 1} (Finset.{u_1} α) (@List.toFinset.{u_1} α inst (@List.filter.{u_1} α p s))\n    ({x ∈ @List.toFinset.{u_1} α inst s | @Eq.{1} Bool (p x) Bool.true})"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-268cea416a9df6a216de57c72e61e7ee30ce271e444482d528f85d6f161f69d0","qualified_name":"List.toFinset_inter","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (l l' : List.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@List.toFinset.{u_1} α inst\n      (@Inter.inter.{u_1} (List.{u_1} α) (@List.instInterOfBEq_batteries.{u_1} α (@instBEqOfDecidableEq.{u_1} α inst)) l\n        l'))\n    (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst) (@List.toFinset.{u_1} α inst l)\n      (@List.toFinset.{u_1} α inst l'))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-2e979e226af5c77ce3d843f031c9281b6b7d8f557d20a1e9696965ad25f20b4d","qualified_name":"List.toFinset_union","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (l l' : List.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@List.toFinset.{u_1} α inst\n      (@Union.union.{u_1} (List.{u_1} α) (@List.instUnionOfBEq_batteries.{u_1} α (@instBEqOfDecidableEq.{u_1} α inst)) l\n        l'))\n    (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) (@List.toFinset.{u_1} α inst l)\n      (@List.toFinset.{u_1} α inst l'))"},{"kind":"definition","module":"Mathlib.Data.List.Basic","object_id":"object-bfdab4c00fe5f16a9d7035be8461b06472d5963e1da691671f0181c699aa618f","qualified_name":"List.uniqueOfIsEmpty","statement":"{α : Type u} → [IsEmpty.{u + 1} α] → Unique.{u + 1} (List.{u} α)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-da12b1e14843228001a70c6fec8a72f58e9c12c2c8b715031875febcf43997a8","qualified_name":"Mathlib.Meta.NormNum.IsInt.rpow_eq_inv_pow","statement":"∀ {b : Real} {n : Nat},\n  @Mathlib.Meta.NormNum.IsInt.{0} Real Real.instRing b (Int.negOfNat n) →\n    ∀ (a : Real),\n      @Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) a b)\n        (@Inv.inv.{0} Real Real.instInv\n          (@HPow.hPow.{0, 0, 0} Real Nat Real\n            (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) a n))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-22850819a0085d8f88583f5d8dafeb5d43bc903d2ef72312b2ae9b6f359a58c4","qualified_name":"Mathlib.Meta.NormNum.IsNNRat.rpow_isNNRat","statement":"∀ (a b : Real) (na da : Nat),\n  @Mathlib.Meta.NormNum.IsNNRat.{0} Real Real.semiring a na da →\n    ∀ (nr dr : Nat),\n      @Mathlib.Meta.NormNum.IsNat.{0} Real\n          (@AddGroupWithOne.toAddMonoidWithOne.{0} Real (@Ring.toAddGroupWithOne.{0} Real Real.instRing))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n            (@Nat.cast.{0} Real Real.instNatCast na) b)\n          nr →\n        @Mathlib.Meta.NormNum.IsNat.{0} Real\n            (@AddGroupWithOne.toAddMonoidWithOne.{0} Real (@Ring.toAddGroupWithOne.{0} Real Real.instRing))\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n              (@Nat.cast.{0} Real Real.instNatCast da) b)\n            dr →\n          @Mathlib.Meta.NormNum.IsNNRat.{0} Real Real.semiring\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) a b) nr dr"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-3894eeb122727286137fde8bafb3f6ac6aca19cde028f85292cb0ade1a042e7e","qualified_name":"Mathlib.Meta.NormNum.IsNat.rpow_eq_pow","statement":"∀ {b : Real} {n : Nat},\n  @Mathlib.Meta.NormNum.IsNat.{0} Real\n      (@AddGroupWithOne.toAddMonoidWithOne.{0} Real (@Ring.toAddGroupWithOne.{0} Real Real.instRing)) b n →\n    ∀ (a : Real),\n      @Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) a b)\n        (@HPow.hPow.{0, 0, 0} Real Nat Real\n          (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) a n)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-9f228f746f82e39a07eba0cd1539d6f5df4a6ac3d155e0d2441de1045ad45285","qualified_name":"Mathlib.Meta.NormNum.IsNat.rpow_isNNRat","statement":"∀ {a b : Real} {m n d r : Nat},\n  @Mathlib.Meta.NormNum.IsNat.{0} Real\n      (@AddGroupWithOne.toAddMonoidWithOne.{0} Real (@Ring.toAddGroupWithOne.{0} Real Real.instRing)) a m →\n    @Mathlib.Meta.NormNum.IsNNRat.{0} Real Real.semiring b n d →\n      ∀ (k : Nat),\n        @Eq.{1} Nat\n            (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n              (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) r d)\n            k →\n          ∀ (l : Nat),\n            @Eq.{1} Nat\n                (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                  (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) m n)\n                l →\n              @Eq.{1} Nat k l →\n                @Mathlib.Meta.NormNum.IsNat.{0} Real\n                  (@AddGroupWithOne.toAddMonoidWithOne.{0} Real (@Ring.toAddGroupWithOne.{0} Real Real.instRing))\n                  (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) a b) r"},{"kind":"definition","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-77604a68bb4ad787e632d3591d9f125f16c37d3408bffaf43ed0576d327fc5a0","qualified_name":"Mathlib.Meta.NormNum.evalRPow","statement":"Mathlib.Meta.NormNum.NormNumExt"},{"kind":"definition","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-6f2385fa853f89a5d1aeb4060b725081744ca8af0251c5ca8cadf0f2099ec717","qualified_name":"Mathlib.Meta.NormNum.proveIsNatRPowIsNNRat","statement":"(a : Qq.Quoted (Lean.Expr.const `Real (@List.nil.{0} Lean.Level))) →\n  (na : Qq.Quoted (Lean.Expr.const `Nat (@List.nil.{0} Lean.Level))) →\n    Qq.Quoted\n        (((((Lean.Expr.const `Mathlib.Meta.NormNum.IsNat\n                          (@List.cons.{0} Lean.Level Lean.Level.zero (@List.nil.{0} Lean.Level))).app\n                      (Lean.Expr.const `Real (@List.nil.{0} Lean.Level))).app\n                  (((Lean.Expr.const `AddGroupWithOne.toAddMonoidWithOne\n                            (@List.cons.{0} Lean.Level Lean.Level.zero (@List.nil.{0} Lean.Level))).app\n                        (Lean.Expr.const `Real (@List.nil.{0} Lean.Level))).app\n                    (((Lean.Expr.const `Ring.toAddGroupWithOne\n                              (@List.cons.{0} Lean.Level Lean.Level.zero (@List.nil.{0} Lean.Level))).app\n                          (Lean.Expr.const `Real (@List.nil.{0} Lean.Level))).app\n                      (Lean.Expr.const `Real.instRing (@List.nil.{0} Lean.Level))))).app\n              a).app\n          na) →\n      (b : Qq.Quoted (Lean.Expr.const `Real (@List.nil.{0} Lean.Level))) →\n        (nb db : Qq.Quoted (Lean.Expr.const `Nat (@List.nil.{0} Lean.Level))) →\n          Qq.Quoted\n              ((((((Lean.Expr.const `Mathlib.Meta.NormNum.IsNNRat\n                                    (@List.cons.{0} Lean.Level Lean.Level.zero (@List.nil.{0} Lean.Level))).app\n                                (Lean.Expr.const `Real (@List.nil.{0} Lean.Level))).app\n                            (Lean.Expr.const `Real.semiring (@List.nil.{0} Lean.Level))).app\n                        b).app\n                    nb).app\n                db) →\n            Lean.Meta.MetaM\n              (Prod.{0, 0} Nat\n                (@Sigma.{0, 0} (Qq.Quoted (Lean.Expr.const `Nat (@List.nil.{0} Lean.Level))) fun r =>\n                  Qq.Quoted\n                    (((((Lean.Expr.const `Mathlib.Meta.NormNum.IsNat\n                                      (@List.cons.{0} Lean.Level Lean.Level.zero (@List.nil.{0} Lean.Level))).app\n                                  (Lean.Expr.const `Real (@List.nil.{0} Lean.Level))).app\n                              (((Lean.Expr.const `AddGroupWithOne.toAddMonoidWithOne\n                                        (@List.cons.{0} Lean.Level Lean.Level.zero (@List.nil.{0} Lean.Level))).app\n                                    (Lean.Expr.const `Real (@List.nil.{0} Lean.Level))).app\n                                (((Lean.Expr.const `Ring.toAddGroupWithOne\n                                          (@List.cons.{0} Lean.Level Lean.Level.zero (@List.nil.{0} Lean.Level))).app\n                                      (Lean.Expr.const `Real (@List.nil.{0} Lean.Level))).app\n                                  (Lean.Expr.const `Real.instRing (@List.nil.{0} Lean.Level))))).app\n                          (((((((Lean.Expr.const `HPow.hPow\n                                                    (@List.cons.{0} Lean.Level Lean.Level.zero\n                                                      (@List.cons.{0} Lean.Level Lean.Level.zero\n                                                        (@List.cons.{0} Lean.Level Lean.Level.zero\n                                                          (@List.nil.{0} Lean.Level))))).app\n                                                (Lean.Expr.const `Real (@List.nil.{0} Lean.Level))).app\n                                            (Lean.Expr.const `Real (@List.nil.{0} Lean.Level))).app\n                                        (Lean.Expr.const `Real (@List.nil.{0} Lean.Level))).app\n                                    ((((Lean.Expr.const `instHPow\n                                                  (@List.cons.{0} Lean.Level Lean.Level.zero\n                                                    (@List.cons.{0} Lean.Level Lean.Level.zero\n                                                      (@List.nil.{0} Lean.Level)))).app\n                                              (Lean.Expr.const `Real (@List.nil.{0} Lean.Level))).app\n                                          (Lean.Expr.const `Real (@List.nil.{0} Lean.Level))).app\n                                      (Lean.Expr.const `Real.instPow (@List.nil.{0} Lean.Level)))).app\n                                a).app\n                            b)).app\n                      r)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-dcdd055f470219564995b4b9c8b04c21c58a2dc7e2c9d54c40c542a81bbd002c","qualified_name":"Mathlib.Meta.NormNum.rpow_isRat_eq_inv_rpow","statement":"∀ (a b : Real) (n d : Nat),\n  @Mathlib.Meta.NormNum.IsRat.{0} Real Real.instRing b (Int.negOfNat n) d →\n    @Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) a b)\n      (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) (@Inv.inv.{0} Real Real.instInv a)\n        (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n          (@Nat.cast.{0} Real Real.instNatCast n) (@Nat.cast.{0} Real Real.instNatCast d)))"},{"kind":"definition","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-fb55df63614781a2e75853517a5d906c158ad4aa92ada26f578e3d5084a186e6","qualified_name":"Mathlib.Meta.Positivity.evalRpow","statement":"Mathlib.Meta.Positivity.PositivityExt"},{"kind":"definition","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-8bf16dc9ee7c8b71de2c46718ea24318351fddf231ef9f79d027676d2677c905","qualified_name":"Mathlib.Meta.Positivity.evalRpowZero","statement":"Mathlib.Meta.Positivity.PositivityExt"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-c5b30a1ee216ad84ed663e1556c4c55df4bb069909582f9262181d05b0fd1159","qualified_name":"Mathlib.Tactic.GCongr.exactLeOfLt","statement":"Mathlib.Tactic.GCongr.ForwardExt"},{"kind":"definition","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-cc842e50f74e8f3da95a2e8dcaff5f0dc6877a7213fcd051fcb3ed9ed7fae95c","qualified_name":"MulOpposite.instHasDistribNeg","statement":"{α : Type u_3} →\n  [inst : Mul.{u_3} α] →\n    [@HasDistribNeg.{u_3} α inst] → @HasDistribNeg.{u_3} (MulOpposite.{u_3} α) (@MulOpposite.instMul.{u_3} α inst)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-7ee0c765e07b07cca7bb5138a25d3ec1b4d69b28180b02ea839d29e187dca278","qualified_name":"Multiset.Aesop.toFinset_nonempty_of_ne","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s : Multiset.{u_1} α},\n  @Ne.{u_1 + 1} (Multiset.{u_1} α) s\n      (@OfNat.ofNat.{u_1} (Multiset.{u_1} α) (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} (Multiset.{u_1} α) (@Multiset.instZero.{u_1} α))) →\n    @Finset.Nonempty.{u_1} α (@Multiset.toFinset.{u_1} α inst s)"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-0bc2be466704762b80daa10742e836e4acd02c56457c0072a6fb339db6da31f4","qualified_name":"Multiset.toFinset_add","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s t : Multiset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Multiset.toFinset.{u_1} α inst\n      (@HAdd.hAdd.{u_1, u_1, u_1} (Multiset.{u_1} α) (Multiset.{u_1} α) (Multiset.{u_1} α)\n        (@instHAdd.{u_1} (Multiset.{u_1} α) (@Multiset.instAdd.{u_1} α)) s t))\n    (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) (@Multiset.toFinset.{u_1} α inst s)\n      (@Multiset.toFinset.{u_1} α inst t))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-752dd93529aff0e387a273fb032e2efd589a49b420fd089e6a856d441b4b5ee5","qualified_name":"Multiset.toFinset_eq_empty","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {m : Multiset.{u_1} α},\n  Iff\n    (@Eq.{u_1 + 1} (Finset.{u_1} α) (@Multiset.toFinset.{u_1} α inst m)\n      (@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α)))\n    (@Eq.{u_1 + 1} (Multiset.{u_1} α) m\n      (@OfNat.ofNat.{u_1} (Multiset.{u_1} α) (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} (Multiset.{u_1} α) (@Multiset.instZero.{u_1} α))))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-722da7a29146c752623337bd380a7eca430c9c2eff1b8b1076c3f346916ed768","qualified_name":"Multiset.toFinset_filter","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s : Multiset.{u_1} α) (p : α → Prop)\n  [inst_1 : @DecidablePred.{u_1 + 1} α p],\n  @Eq.{u_1 + 1} (Finset.{u_1} α) (@Multiset.toFinset.{u_1} α inst (@Multiset.filter.{u_1} α p inst_1 s))\n    (@Finset.filter.{u_1} α p inst_1 (@Multiset.toFinset.{u_1} α inst s))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-5e16e13112b9831e440bd26cef5e13791e6fbcdc355cd2174c2631ae22007e31","qualified_name":"Multiset.toFinset_inter","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s t : Multiset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Multiset.toFinset.{u_1} α inst (@Inter.inter.{u_1} (Multiset.{u_1} α) (@Multiset.instInter.{u_1} α inst) s t))\n    (@Inter.inter.{u_1} (Finset.{u_1} α) (@Finset.instInter.{u_1} α inst) (@Multiset.toFinset.{u_1} α inst s)\n      (@Multiset.toFinset.{u_1} α inst t))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-c3bcb05f91480384dda7805150d97ec7b0fe8a79fe63f4b4caacfe0fc0014d73","qualified_name":"Multiset.toFinset_nonempty","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] {s : Multiset.{u_1} α},\n  Iff (@Finset.Nonempty.{u_1} α (@Multiset.toFinset.{u_1} α inst s))\n    (@Ne.{u_1 + 1} (Multiset.{u_1} α) s\n      (@OfNat.ofNat.{u_1} (Multiset.{u_1} α) (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} (Multiset.{u_1} α) (@Multiset.instZero.{u_1} α))))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-5092ad982966d7e6948b426601d83271214545d50631c244da0170bc494e672e","qualified_name":"Multiset.toFinset_replicate","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (n : Nat) (a : α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α) (@Multiset.toFinset.{u_1} α inst (@Multiset.replicate.{u_1} α n a))\n    (@ite.{u_1 + 1} (Finset.{u_1} α) (@Eq.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n      (instDecidableEqNat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n      (@EmptyCollection.emptyCollection.{u_1} (Finset.{u_1} α) (@Finset.instEmptyCollection.{u_1} α))\n      (@Singleton.singleton.{u_1, u_1} α (Finset.{u_1} α) (@Finset.instSingleton.{u_1} α) a))"},{"kind":"theorem","module":"Mathlib.Data.Finset.Basic","object_id":"object-95c36c4f10a4d404633be0d6f1339963d80bf405382697b883ba9d0859fa3557","qualified_name":"Multiset.toFinset_union","statement":"∀ {α : Type u_1} [inst : DecidableEq.{u_1 + 1} α] (s t : Multiset.{u_1} α),\n  @Eq.{u_1 + 1} (Finset.{u_1} α)\n    (@Multiset.toFinset.{u_1} α inst (@Union.union.{u_1} (Multiset.{u_1} α) (@Multiset.instUnion.{u_1} α inst) s t))\n    (@Union.union.{u_1} (Finset.{u_1} α) (@Finset.instUnion.{u_1} α inst) (@Multiset.toFinset.{u_1} α inst s)\n      (@Multiset.toFinset.{u_1} α inst t))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-17a942e7b8a4a7652a3141c2e03218ec32f9f7a840f1ac274b7c7c8d3c021632","qualified_name":"Nat.Coprime.odd_of_left","statement":"∀ {n : Nat},\n  Nat.Coprime (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) n → @Odd.{0} Nat Nat.instSemiring n"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-f0b1db6dc6e88bf5feb3e51d8a89db50378cab92835d21f849d7ecc4097be3c0","qualified_name":"Nat.Coprime.odd_of_right","statement":"∀ {n : Nat}, n.Coprime (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) → @Odd.{0} Nat Nat.instSemiring n"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-3c5d8c380ebfbd953dd8b9831d280005dfaa7820c94a73f76bad49bc7de1d5d1","qualified_name":"Nat.Prime.coprime_pow_of_not_dvd","statement":"∀ {p m a : Nat},\n  Nat.Prime p →\n    Not (@Dvd.dvd.{0} Nat Nat.instDvd p a) →\n      a.Coprime\n        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) p m)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-45d8bc32eb789482c0b1f574b7307c7f791c66fc163b544f06d30b6e0aeb0606","qualified_name":"Nat.Prime.dvd_iff_eq","statement":"∀ {p a : Nat},\n  Nat.Prime p →\n    @Ne.{1} Nat a (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) →\n      Iff (@Dvd.dvd.{0} Nat Nat.instDvd a p) (@Eq.{1} Nat p a)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-d71ee965aef1812981c4bca250e7ec2f6723c7a9b25f838fd1da6e73e1543772","qualified_name":"Nat.Prime.dvd_iff_not_coprime","statement":"∀ {p n : Nat}, Nat.Prime p → Iff (@Dvd.dvd.{0} Nat Nat.instDvd p n) (Not (p.Coprime n))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-1c75e0546d68248e4f7b1714e790688edb34ffe4c21ba7166068ac62024f2cbb","qualified_name":"Nat.Prime.dvd_mul_of_dvd_ne","statement":"∀ {p1 p2 n : Nat},\n  @Ne.{1} Nat p1 p2 →\n    Nat.Prime p1 →\n      Nat.Prime p2 →\n        @Dvd.dvd.{0} Nat Nat.instDvd p1 n →\n          @Dvd.dvd.{0} Nat Nat.instDvd p2 n →\n            @Dvd.dvd.{0} Nat Nat.instDvd (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) p1 p2) n"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-46960ee72f42df2474095f781cdfe93f5e4cdf39c362b08533c8860320abefe1","qualified_name":"Nat.Prime.dvd_of_dvd_pow","statement":"∀ {p m n : Nat},\n  Nat.Prime p →\n    @Dvd.dvd.{0} Nat Nat.instDvd p\n        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) m n) →\n      @Dvd.dvd.{0} Nat Nat.instDvd p m"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-a06b93ecd90f306e4f4a693aec343b4162061f377ec5de418a4cee1bddeff0a0","qualified_name":"Nat.Prime.eq_one_of_pow","statement":"∀ {x n : Nat},\n  Nat.Prime\n      (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n        (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) x n) →\n    @Eq.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-d39f351caae4fa829f5094b73992ceac21f61312a28ddde73fdeca83cc16cd1a","qualified_name":"Nat.Prime.eq_two_or_odd","statement":"∀ {p : Nat},\n  Nat.Prime p →\n    Or (@Eq.{1} Nat p (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n      (@Eq.{1} Nat\n        (@HMod.hMod.{0, 0, 0} Nat Nat Nat (@instHMod.{0} Nat Nat.instMod) p\n          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-dbb11a60b90760a49d762ee7e061db89394a347851e4a513e837ee75f01136e2","qualified_name":"Nat.Prime.eq_two_or_odd'","statement":"∀ {p : Nat},\n  Nat.Prime p →\n    Or (@Eq.{1} Nat p (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) (@Odd.{0} Nat Nat.instSemiring p)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-78c7a810c54374cce3db30c33f8c8f5fff12bcd9cbfa09e23aec206345ac3154","qualified_name":"Nat.Prime.even_iff","statement":"∀ {p : Nat},\n  Nat.Prime p →\n    Iff (@Even.{0} Nat instAddNat p) (@Eq.{1} Nat p (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-03cc5295f9c840215e7281a468f75be28b99ae4234ccd5a3c3e9d27e7b1b3001","qualified_name":"Nat.Prime.even_sub_one","statement":"∀ {p : Nat},\n  Nat.Prime p →\n    @Ne.{1} Nat p (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) →\n      @Even.{0} Nat instAddNat\n        (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) p\n          (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-ed85f9e76b9dd48a22e4d500f9b3dab31383d875be7929a879882fb16ac1b634","qualified_name":"Nat.Prime.five_le_of_ne_two_of_ne_three","statement":"∀ {p : Nat},\n  Nat.Prime p →\n    @Ne.{1} Nat p (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) →\n      @Ne.{1} Nat p (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) →\n        @LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 5) (instOfNatNat (nat_lit 5))) p"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-3234cf4d717ba609c6a5da713481c508166fb60ae2877a35beb99d28e4b4e6d4","qualified_name":"Nat.Prime.mod_two_eq_one_iff_ne_two","statement":"∀ {p : Nat},\n  Nat.Prime p →\n    Iff\n      (@Eq.{1} Nat\n        (@HMod.hMod.{0, 0, 0} Nat Nat Nat (@instHMod.{0} Nat Nat.instMod) p\n          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      (@Ne.{1} Nat p (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-53a2ef25fcf59731af48a80c1183436db9b35bbd928439003ac4878c741ff2b9","qualified_name":"Nat.Prime.mul_eq_prime_sq_iff","statement":"∀ {x y p : Nat},\n  Nat.Prime p →\n    @Ne.{1} Nat x (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) →\n      @Ne.{1} Nat y (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) →\n        Iff\n          (@Eq.{1} Nat (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) x y)\n            (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n              (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) p\n              (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n          (And (@Eq.{1} Nat x p) (@Eq.{1} Nat y p))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-c8c44bbeec1627f4526b3aa9aa5b0b8782c935ff127a3fe35703b397b20ab2a1","qualified_name":"Nat.Prime.not_coprime_iff_dvd","statement":"∀ {m n : Nat},\n  Iff (Not (m.Coprime n))\n    (∃ p, And (Nat.Prime p) (And (@Dvd.dvd.{0} Nat Nat.instDvd p m) (@Dvd.dvd.{0} Nat Nat.instDvd p n)))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-a7080a09bff54463e0610d0cf80f81356f14edbc9f4d490ab5696479361c9fd3","qualified_name":"Nat.Prime.not_dvd_mul","statement":"∀ {p m n : Nat},\n  Nat.Prime p →\n    Not (@Dvd.dvd.{0} Nat Nat.instDvd p m) →\n      Not (@Dvd.dvd.{0} Nat Nat.instDvd p n) →\n        Not (@Dvd.dvd.{0} Nat Nat.instDvd p (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) m n))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-9e4ec0c082886f4d3a3fa9f5cd8380c638a184383264e9af1002488069c705ca","qualified_name":"Nat.Prime.not_prime_pow","statement":"∀ {x n : Nat},\n  @LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) n →\n    Not\n      (Nat.Prime\n        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) x n))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-8dadf51dfd0abafb593445d912e0a5c14a2be17d9f70fb437044bf680fe2cd98","qualified_name":"Nat.Prime.not_prime_pow'","statement":"∀ {x n : Nat},\n  @Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) →\n    Not\n      (Nat.Prime\n        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) x n))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-c94b3407e6728baaa9f96fc7f10e5432298d79263672f9b10e083ddd2018147c","qualified_name":"Nat.Prime.odd_iff","statement":"∀ {p : Nat},\n  Nat.Prime p →\n    Iff (@Odd.{0} Nat Nat.instSemiring p)\n      (@LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 3) (instOfNatNat (nat_lit 3))) p)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-07896e8808d384380bd6e81b7ede88b25c658c9348e27f9019a2eea3a635ec52","qualified_name":"Nat.Prime.odd_of_ne_two","statement":"∀ {p : Nat},\n  Nat.Prime p →\n    @Ne.{1} Nat p (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) → @Odd.{0} Nat Nat.instSemiring p"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-b48e8115a06b318b86b47244b1ed083f96d13bab1da8a8ea109c68076507d801","qualified_name":"Nat.Prime.pow_eq_iff","statement":"∀ {p a k : Nat},\n  Nat.Prime p →\n    Iff\n      (@Eq.{1} Nat\n        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n          (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) a k)\n        p)\n      (And (@Eq.{1} Nat a p) (@Eq.{1} Nat k (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-ae669713a5181d742f404e9bbcefbe7546ec563fa72dd99472b44bfa9de073bc","qualified_name":"Nat.Prime.pred_pos","statement":"∀ {p : Nat}, Nat.Prime p → @LT.lt.{0} Nat instLTNat (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) p.pred"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-6317e559b8a302fa522fdb20fcb5c628e8190f0081d807c21d7cd7fbbae25bfd","qualified_name":"Nat.coprime_of_dvd'","statement":"∀ {m n : Nat},\n  (∀ (k : Nat),\n      Nat.Prime k →\n        @Dvd.dvd.{0} Nat Nat.instDvd k m →\n          @Dvd.dvd.{0} Nat Nat.instDvd k n →\n            @Dvd.dvd.{0} Nat Nat.instDvd k (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) →\n    m.Coprime n"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-236e9ffa5021efeb428c9eb4d87ff7ceebcfc251eed5d78a935d8efdf87f9dc7","qualified_name":"Nat.coprime_of_lt_minFac","statement":"∀ {n m : Nat},\n  @Ne.{1} Nat m (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    @LT.lt.{0} Nat instLTNat m n.minFac → n.Coprime m"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-d282225eee4dde8b1ff96a1f064e1771a11a1708289607c9e15defbf4fe6dad6","qualified_name":"Nat.coprime_of_lt_prime","statement":"∀ {n p : Nat},\n  @Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    @LT.lt.{0} Nat instLTNat n p → Nat.Prime p → p.Coprime n"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-4714b9dd347e03ae93ef865ea68a8a7a223da4ded89e17738bf8841c015c9f85","qualified_name":"Nat.coprime_or_dvd_of_prime","statement":"∀ {p : Nat}, Nat.Prime p → ∀ (i : Nat), Or (p.Coprime i) (@Dvd.dvd.{0} Nat Nat.instDvd p i)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-1c3524a44c2dd2b40833a18e22bcfefedb1acae6a4255b6c1fab353bfca72af0","qualified_name":"Nat.coprime_pow_primes","statement":"∀ {p q : Nat} (n m : Nat),\n  Nat.Prime p →\n    Nat.Prime q →\n      @Ne.{1} Nat p q →\n        (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n              (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) p n).Coprime\n          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) q m)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-f49c79d2792e2f99559f80187bd892294f801df9aa3783c76102f4460ea889bd","qualified_name":"Nat.coprime_primes","statement":"∀ {p q : Nat}, Nat.Prime p → Nat.Prime q → Iff (p.Coprime q) (@Ne.{1} Nat p q)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-0e7fbe9a8eb1ba37ae34648026c618ea17811cda8b54b2b66ebb4a3a4651fc13","qualified_name":"Nat.coprime_two_left","statement":"∀ {n : Nat},\n  Iff (Nat.Coprime (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) n) (@Odd.{0} Nat Nat.instSemiring n)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-ca60eb6a4d529037245e1f0124b15120e862ed5b119a64dea8dbc112ecdf318f","qualified_name":"Nat.coprime_two_right","statement":"∀ {n : Nat},\n  Iff (n.Coprime (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))) (@Odd.{0} Nat Nat.instSemiring n)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-943aa7264e52783085629c0a9e71dda4a1d17cad50dd69db0aa387ea09884583","qualified_name":"Nat.div_right_comm","statement":"∀ (a b c : Nat),\n  @Eq.{1} Nat\n    (@HDiv.hDiv.{0, 0, 0} Nat Nat Nat (@instHDiv.{0} Nat Nat.instDiv)\n      (@HDiv.hDiv.{0, 0, 0} Nat Nat Nat (@instHDiv.{0} Nat Nat.instDiv) a b) c)\n    (@HDiv.hDiv.{0, 0, 0} Nat Nat Nat (@instHDiv.{0} Nat Nat.instDiv)\n      (@HDiv.hDiv.{0, 0, 0} Nat Nat Nat (@instHDiv.{0} Nat Nat.instDiv) a c) b)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-6e207e392f10e857c22e0b3e620dad36db5ffffd7f20228f1f872ec34ef7d594","qualified_name":"Nat.dvd_antisymm_iff","statement":"∀ {m n : Nat}, Iff (@Eq.{1} Nat m n) (And (@Dvd.dvd.{0} Nat Nat.instDvd m n) (@Dvd.dvd.{0} Nat Nat.instDvd n m))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-e9c8f6da6fd465bb2668977b688790eab6d4d67839738a5f8d33fa606f69f628","qualified_name":"Nat.dvd_left_injective","statement":"@Function.Injective.{1, 1} Nat (Nat → Prop) fun x1 x2 => @Dvd.dvd.{0} Nat Nat.instDvd x1 x2"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-aa148a827fb00226b8117c6e66d857b78c53c89afe37cca1c9aaa93830491711","qualified_name":"Nat.dvd_of_forall_prime_mul_dvd","statement":"∀ {a b : Nat},\n  (∀ (p : Nat),\n      Nat.Prime p →\n        @Dvd.dvd.{0} Nat Nat.instDvd p a →\n          @Dvd.dvd.{0} Nat Nat.instDvd (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) p a) b) →\n    @Dvd.dvd.{0} Nat Nat.instDvd a b"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-bef6364d0d1a89d65af6a049026e9103288b1328a7e24d8be2bfdafe8b1f302b","qualified_name":"Nat.dvd_prime_pow","statement":"∀ {p : Nat},\n  Nat.Prime p →\n    ∀ {m i : Nat},\n      Iff\n        (@Dvd.dvd.{0} Nat Nat.instDvd i\n          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) p m))\n        (∃ k,\n          And (@LE.le.{0} Nat instLENat k m)\n            (@Eq.{1} Nat i\n              (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) p k)))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-2c3d3c2cbfbaef39cbedef802a184eb4731d3460cb598627dcb3680909582350","qualified_name":"Nat.dvd_sub_self_left","statement":"∀ {n m : Nat},\n  Iff (@Dvd.dvd.{0} Nat Nat.instDvd n (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) n m))\n    (Or (@Eq.{1} Nat m (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))) (@LE.le.{0} Nat instLENat n m))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-8074d28da1d4d09f3b819ad10ec745524e3a04d60e26daef7f606189bf66ec27","qualified_name":"Nat.dvd_sub_self_right","statement":"∀ {n m : Nat},\n  Iff (@Dvd.dvd.{0} Nat Nat.instDvd n (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) m n))\n    (Or (@Dvd.dvd.{0} Nat Nat.instDvd n m) (@LE.le.{0} Nat instLENat m n))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-9d2145b3e730a2c3f7f4587c5f6300adb95a0dbc2e86c4d97ac99635a856f371","qualified_name":"Nat.eq_one_iff_not_exists_prime_dvd","statement":"∀ {n : Nat},\n  Iff (@Eq.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n    (∀ (p : Nat), Nat.Prime p → Not (@Dvd.dvd.{0} Nat Nat.instDvd p n))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-854acdb4639fc1b919b781621ad891b6b1ab6dd79ce4a31f89e16506aa139639","qualified_name":"Nat.eq_or_coprime_of_le_prime","statement":"∀ {n p : Nat},\n  @Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    @LE.le.{0} Nat instLENat n p → Nat.Prime p → Or (@Eq.{1} Nat p n) (p.Coprime n)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-20090a42b4453287c441a009e9ead8cce3a5aa297e8247a1676f1fa977d0602a","qualified_name":"Nat.eq_prime_pow_of_dvd_least_prime_pow","statement":"∀ {a p k : Nat},\n  Nat.Prime p →\n    Not\n        (@Dvd.dvd.{0} Nat Nat.instDvd a\n          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) p k)) →\n      @Dvd.dvd.{0} Nat Nat.instDvd a\n          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) p\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))) →\n        @Eq.{1} Nat a\n          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) p\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-cb1e31c469cdfdf4a82f9163dad7ce6862843a9d70925eff392284d17ac35f71","qualified_name":"Nat.exists_dvd_of_not_prime","statement":"∀ {n : Nat},\n  @LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) n →\n    Not (Nat.Prime n) →\n      ∃ m,\n        And (@Dvd.dvd.{0} Nat Nat.instDvd m n)\n          (And (@Ne.{1} Nat m (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (@Ne.{1} Nat m n))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-830bee5e5b797389e5560820c26670c982ae7b2869076cfcd46fe00808857859","qualified_name":"Nat.exists_dvd_of_not_prime2","statement":"∀ {n : Nat},\n  @LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) n →\n    Not (Nat.Prime n) →\n      ∃ m,\n        And (@Dvd.dvd.{0} Nat Nat.instDvd m n)\n          (And (@LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) m)\n            (@LT.lt.{0} Nat instLTNat m n))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-2f0866ea51518faa12f05767cae2e498d6787935bf657b35c2d361a717b95f08","qualified_name":"Nat.forall_prime_iff_two_and_odd","statement":"∀ {P : Nat → Prop},\n  Iff (∀ (p : Nat), Nat.Prime p → P p)\n    (And (P (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n      (∀ (p : Nat), Nat.Prime p → @Odd.{0} Nat Nat.instSemiring p → P p))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-d73fe8a0a1d94e971e6902a9b2ba07b5cef734d5752d492a25ad9a481d01c3ee","qualified_name":"Nat.forall_prime_of_two_of_odd","statement":"∀ {P : Nat → Prop},\n  And (P (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))\n      (∀ (p : Nat), Nat.Prime p → @Odd.{0} Nat Nat.instSemiring p → P p) →\n    ∀ (p : Nat), Nat.Prime p → P p"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-100e5652d74ebc1d0eb77a109eea642c64050fa2e8e3854f98be94f7e40e2f04","qualified_name":"Nat.gcd_eq_one_of_lt_minFac","statement":"∀ {n m : Nat},\n  @Ne.{1} Nat m (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    @LT.lt.{0} Nat instLTNat m n.minFac →\n      @Eq.{1} Nat (n.gcd m) (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))"},{"kind":"definition","module":"Mathlib.Data.Nat.Basic","object_id":"object-f6e412cbe8af6d476b64adc9d7d4a527ba470b227a8692facb51e5aaa3e95f9c","qualified_name":"Nat.instLinearOrder","statement":"LinearOrder.{0} Nat"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-048d03b623b740f78cb6e02fc509f442fdae15a4b4714705b116c2382abcd25d","qualified_name":"Nat.instNontrivial","statement":"Nontrivial.{0} Nat"},{"kind":"definition","module":"Mathlib.Data.Nat.Basic","object_id":"object-e14726a38e6e9f291428473541d6b528d5e84d3dbb301b6b50823b4b80d5ae1a","qualified_name":"Nat.instPartialOrder","statement":"PartialOrder.{0} Nat"},{"kind":"definition","module":"Mathlib.Data.Nat.Basic","object_id":"object-5bc9564906d7543fc0c49d1c81d78ce58c90fe957a5cf99d01a08604a6e6d84e","qualified_name":"Nat.instPreorder","statement":"Preorder.{0} Nat"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-3bfd2ac550493870ff586c1bd32d7773418d41d19f0cbb0326a3635904f8d671","qualified_name":"Nat.leRecOn_injective","statement":"∀ {C : Nat → Sort u_1} {n m : Nat} (hnm : @LE.le.{0} Nat instLENat n m)\n  (next :\n    {k : Nat} →\n      C k →\n        C\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))),\n  (∀ (n : Nat),\n      @Function.Injective.{u_1, u_1} (C n)\n        (C\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) n\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n        (@next n)) →\n    @Function.Injective.{u_1, u_1} (C n) (C m) (@Nat.leRecOn.{u_1} C n m hnm fun {k} => @next k)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-20ea9f9a1c8ebcdd32219589745030a5e939226e01479ff4fb7c0914eafd3d32","qualified_name":"Nat.leRecOn_surjective","statement":"∀ {C : Nat → Sort u_1} {n m : Nat} (hnm : @LE.le.{0} Nat instLENat n m)\n  (next :\n    {k : Nat} →\n      C k →\n        C\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))),\n  (∀ (n : Nat),\n      @Function.Surjective.{u_1, u_1} (C n)\n        (C\n          (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) n\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n        (@next n)) →\n    @Function.Surjective.{u_1, u_1} (C n) (C m) (@Nat.leRecOn.{u_1} C n m hnm fun {k} => @next k)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-e09f0328f76961c8b775c3e8923ac77d804225efc258221c099a67654a6e3990","qualified_name":"Nat.mul_le_pow","statement":"∀ {a : Nat},\n  @Ne.{1} Nat a (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) →\n    ∀ (b : Nat),\n      @LE.le.{0} Nat instLENat (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) a b)\n        (@HPow.hPow.{0, 0, 0} Nat Nat Nat (@instHPow.{0, 0} Nat Nat (@instPowNat.{0} Nat instNatPowNat)) a b)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-3429afc74c81524594c3da914d0ec816802e29a5a0eccfce679a249c55fb5df4","qualified_name":"Nat.ne_one_iff_exists_prime_dvd","statement":"∀ {n : Nat},\n  Iff (@Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n    (∃ p, And (Nat.Prime p) (@Dvd.dvd.{0} Nat Nat.instDvd p n))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-6a94c9a0ef64ded0e7b3105d48f294e0603af27aa86999c2da2a817ebd34d41a","qualified_name":"Nat.not_prime_iff_exists_dvd_lt","statement":"∀ {n : Nat},\n  @LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) n →\n    Iff (Not (Nat.Prime n))\n      (∃ m,\n        And (@Dvd.dvd.{0} Nat Nat.instDvd m n)\n          (And (@LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) m)\n            (@LT.lt.{0} Nat instLTNat m n)))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-ab58d18060b2e9652a21fbf891e921b15c24fd14c9f0bffc6779194e5f0a7a83","qualified_name":"Nat.not_prime_iff_exists_dvd_ne","statement":"∀ {n : Nat},\n  @LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) n →\n    Iff (Not (Nat.Prime n))\n      (∃ m,\n        And (@Dvd.dvd.{0} Nat Nat.instDvd m n)\n          (And (@Ne.{1} Nat m (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))) (@Ne.{1} Nat m n)))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-8ad636de6f8c3efbd6f4e21cc96762e160743edc8fe520b1b3f8ed0ff77c9967","qualified_name":"Nat.not_prime_iff_exists_mul_eq","statement":"∀ {n : Nat},\n  @LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) n →\n    Iff (Not (Nat.Prime n))\n      (∃ a b,\n        And (@LT.lt.{0} Nat instLTNat a n)\n          (And (@LT.lt.{0} Nat instLTNat b n)\n            (@Eq.{1} Nat (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) a b) n)))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-2732a9c332094154c208d6f3c3096977b03a8a8d930f881cca16d126961127e9","qualified_name":"Nat.not_prime_mul","statement":"∀ {a b : Nat},\n  @Ne.{1} Nat a (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) →\n    @Ne.{1} Nat b (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) →\n      Not (Nat.Prime (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) a b))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-cfc1d5be0746a88601799911f497da406565957258023c328f05bad3654d08a0","qualified_name":"Nat.not_prime_of_dvd_of_lt","statement":"∀ {m n : Nat},\n  @Dvd.dvd.{0} Nat Nat.instDvd m n →\n    @LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) m →\n      @LT.lt.{0} Nat instLTNat m n → Not (Nat.Prime n)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-71149446539e657955dbbc797fe8ca02c6513a17479c6d9149bbc98d56ee8d54","qualified_name":"Nat.not_prime_of_dvd_of_ne","statement":"∀ {m n : Nat},\n  @Dvd.dvd.{0} Nat Nat.instDvd m n →\n    @Ne.{1} Nat m (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) → @Ne.{1} Nat m n → Not (Nat.Prime n)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-1f53c5c2a6f31affb23cc41be1bcea0df4d725bd2bd0c75503770efe0b64de43","qualified_name":"Nat.not_prime_of_mul_eq","statement":"∀ {a b n : Nat},\n  @Eq.{1} Nat (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) a b) n →\n    @Ne.{1} Nat a (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) →\n      @Ne.{1} Nat b (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))) → Not (Nat.Prime n)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-3560be489e7f1b47f568d356bd2792c760a49d0d5343f73e5f02b5705580f636","qualified_name":"Nat.pow_left_injective","statement":"∀ {n : Nat},\n  @Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    @Function.Injective.{1, 1} Nat Nat fun a =>\n      @HPow.hPow.{0, 0, 0} Nat Nat Nat (@instHPow.{0, 0} Nat Nat (@instPowNat.{0} Nat instNatPowNat)) a n"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-dd8c23648f56238cdf07fd1599cad8169538af99be3d87ba12f1f65da239a80e","qualified_name":"Nat.pow_right_injective","statement":"∀ {a : Nat},\n  @LE.le.{0} Nat instLENat (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) a →\n    @Function.Injective.{1, 1} Nat Nat fun x =>\n      @HPow.hPow.{0, 0, 0} Nat Nat Nat (@instHPow.{0, 0} Nat Nat (@instPowNat.{0} Nat instNatPowNat)) a x"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-c6d75d935e7d31c8a823005380093a0724304d13278e4c8aa92ee2b1b96f8515","qualified_name":"Nat.pow_sub_one","statement":"∀ {x a : Nat},\n  @Ne.{1} Nat x (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    @Ne.{1} Nat a (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n      @Eq.{1} Nat\n        (@HPow.hPow.{0, 0, 0} Nat Nat Nat (@instHPow.{0, 0} Nat Nat (@instPowNat.{0} Nat instNatPowNat)) x\n          (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) a\n            (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n        (@HDiv.hDiv.{0, 0, 0} Nat Nat Nat (@instHDiv.{0} Nat Nat.instDiv)\n          (@HPow.hPow.{0, 0, 0} Nat Nat Nat (@instHPow.{0, 0} Nat Nat (@instPowNat.{0} Nat instNatPowNat)) x a) x)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-d1735cbf2fc9278395332b993c03106130ae4964d39339729a674d19ec71196e","qualified_name":"Nat.prime_eq_prime_of_dvd_pow","statement":"∀ {m p q : Nat},\n  Nat.Prime p →\n    Nat.Prime q →\n      @Dvd.dvd.{0} Nat Nat.instDvd p\n          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) q m) →\n        @Eq.{1} Nat p q"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-f6a2a0bec618fc17c516b46b2d321ff05c9fcac0d4657f860dc24f50ccb4e04e","qualified_name":"Nat.prime_mul_iff","statement":"∀ {a b : Nat},\n  Iff (Nat.Prime (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) a b))\n    (Or (And (Nat.Prime a) (@Eq.{1} Nat b (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n      (And (Nat.Prime b) (@Eq.{1} Nat a (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))))"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-c86cafdc6e5c7d5ae2daadecf78eeb0bdd94e60bd89658cc77e1b241166452cb","qualified_name":"Nat.set_induction","statement":"∀ {S : Set.{0} Nat},\n  @Membership.mem.{0, 0} Nat (Set.{0} Nat) (@Set.instMembership.{0} Nat) S\n      (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    (∀ (k : Nat),\n        @Membership.mem.{0, 0} Nat (Set.{0} Nat) (@Set.instMembership.{0} Nat) S k →\n          @Membership.mem.{0, 0} Nat (Set.{0} Nat) (@Set.instMembership.{0} Nat) S\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))) →\n      ∀ (n : Nat), @Membership.mem.{0, 0} Nat (Set.{0} Nat) (@Set.instMembership.{0} Nat) S n"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-4b0b396a08bb76a3eeaf0b28381175bf34b24dc96c932b8d6af93f3031c44573","qualified_name":"Nat.set_induction_bounded","statement":"∀ {n k : Nat} {S : Set.{0} Nat},\n  @Membership.mem.{0, 0} Nat (Set.{0} Nat) (@Set.instMembership.{0} Nat) S k →\n    (∀ (k : Nat),\n        @Membership.mem.{0, 0} Nat (Set.{0} Nat) (@Set.instMembership.{0} Nat) S k →\n          @Membership.mem.{0, 0} Nat (Set.{0} Nat) (@Set.instMembership.{0} Nat) S\n            (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))) →\n      @LE.le.{0} Nat instLENat k n → @Membership.mem.{0, 0} Nat (Set.{0} Nat) (@Set.instMembership.{0} Nat) S n"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-d4a95182aace0ebcd8553fc5041bd10111ca4543fc434a562ed81679a6f745c9","qualified_name":"Nat.succ_dvd_or_succ_dvd_of_succ_sum_dvd_mul","statement":"∀ {p : Nat},\n  Nat.Prime p →\n    ∀ {m n k l : Nat},\n      @Dvd.dvd.{0} Nat Nat.instDvd\n          (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n            (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) p k)\n          m →\n        @Dvd.dvd.{0} Nat Nat.instDvd\n            (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n              (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) p l)\n            n →\n          @Dvd.dvd.{0} Nat Nat.instDvd\n              (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) p\n                (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n                  (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k l)\n                  (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n              (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat) m n) →\n            Or\n              (@Dvd.dvd.{0} Nat Nat.instDvd\n                (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                  (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) p\n                  (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) k\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n                m)\n              (@Dvd.dvd.{0} Nat Nat.instDvd\n                (@HPow.hPow.{0, 0, 0} Nat Nat Nat\n                  (@instHPow.{0, 0} Nat Nat (@NPow.toPow.{0} Nat (@Monoid.toNPow.{0} Nat Nat.instMonoid))) p\n                  (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) l\n                    (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n                n)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-965ee422158fc53f469a898072a555cc013bc3d5dd63c4cecf3a0a55bcddd76b","qualified_name":"Nat.succ_injective","statement":"@Function.Injective.{1, 1} Nat Nat Nat.succ"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-b0fb45d6b8c9cd5a3f1304239a5d378a0f292e13727e22fe78e7ff4407dda39d","qualified_name":"Nat.succ_pred_prime","statement":"∀ {p : Nat}, Nat.Prime p → @Eq.{1} Nat p.pred.succ p"},{"kind":"theorem","module":"Mathlib.Data.Nat.Basic","object_id":"object-50b34138fa655003ae0c93fdaa14e912716c154552e057db4fef87e14395247c","qualified_name":"Nat.two_mul_sq_add_one_le_two_pow_two_mul","statement":"∀ (k : Nat),\n  @LE.le.{0} Nat instLENat\n    (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat)\n      (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n        (@HPow.hPow.{0, 0, 0} Nat Nat Nat (@instHPow.{0, 0} Nat Nat (@instPowNat.{0} Nat instNatPowNat)) k\n          (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))))\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n    (@HPow.hPow.{0, 0, 0} Nat Nat Nat (@instHPow.{0, 0} Nat Nat (@instPowNat.{0} Nat instNatPowNat))\n      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))\n      (@HMul.hMul.{0, 0, 0} Nat Nat Nat (@instHMul.{0} Nat instMulNat)\n        (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) k))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-b14cc019c947ded931cb4ef3b025153f2f7eccf02b5978f4ce968aaee0c741bc","qualified_name":"Ne.ge_iff_gt","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @Ne.{u_2 + 1} α a b →\n    Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)\n      (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-cec6cc27bace3dc5c295f7e3209e8e34870409d1df45bd37a9c2083a174a0789","qualified_name":"Ne.gt_or_lt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  @Ne.{u_2 + 1} α a b →\n    Or\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a)\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-7d6c27baf4d0f0c937fb35c613a5dd70241a445430eecd43c90741990983149e","qualified_name":"Ne.instIsEquiv_compl","statement":"∀ {α : Type u_2},\n  IsEquiv.{u_2 + 1} α\n    (@Compl.compl.{u_2} (α → α → Prop)\n      (@Pi.instCompl.{u_2, u_2} α (fun a => α → Prop) fun i =>\n        @Pi.instCompl.{u_2, 0} α (fun a => Prop) fun i => «Prop».instCompl)\n      fun x1 x2 => @Ne.{u_2 + 1} α x1 x2)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-e22d94cb4719bd1f7286359129cf93f2f4c20248170030ff7f47eb550420a61a","qualified_name":"Ne.le_iff_lt","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @Ne.{u_2 + 1} α a b →\n    Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)\n      (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-9eb34f4ab56c26178c750d4ea38be93f44afa2e042dcdea169f0a7645b1a2666","qualified_name":"Ne.lt_of_le","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @Ne.{u_2 + 1} α a b →\n    @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b →\n      @LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-44544c3171a41c65ba34b4fae879acb2fc2c775b0d111715efd7d7bb57c3dd92","qualified_name":"Ne.lt_of_le'","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @Ne.{u_2 + 1} α a b →\n    @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a →\n      @LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-20befcd863887b7b18f9a203a799735e5ef5a126693ee6c3633396e686d3dc89","qualified_name":"Ne.lt_or_gt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  @Ne.{u_2 + 1} α a b →\n    Or\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b)\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-9a5bbfe1315c58465f30abae08b2cc4265b69b1d115f9b25bbec375aa4dc1083","qualified_name":"Ne.not_ge_or_not_le","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @Ne.{u_2 + 1} α a b →\n    Or (Not (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a))\n      (Not (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-f2cf36a0bc63ae959830ece685be0a7e7aa032f3da68e2d88a13c35738d33da5","qualified_name":"Ne.not_le_or_not_ge","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @Ne.{u_2 + 1} α a b →\n    Or (Not (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b))\n      (Not (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-e99d939304e11fce75efb3d53de4fd96720772f7b5cb7f0f7613dce951345582","qualified_name":"NoZeroDivisors.to_isCancelMulZero","statement":"∀ (R : Type u_3) [inst : NonUnitalNonAssocRing.{u_3} R]\n  [@NoZeroDivisors.{u_3} R\n      (@Distrib.toMul.{u_3} R\n        (@NonUnitalNonAssocSemiring.toDistrib.{u_3} R\n          (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst)))\n      (@MulZeroClass.toZero.{u_3} R\n        (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n          (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst)))],\n  @IsCancelMulZero.{u_3} R\n    (@Distrib.toMul.{u_3} R\n      (@NonUnitalNonAssocSemiring.toDistrib.{u_3} R (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst)))\n    (@MulZeroClass.toZero.{u_3} R\n      (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n        (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst)))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-84b2e2603020fd64a1a575c3f5b2062c36c760f873ea99adc72fbf5cc00ace44","qualified_name":"NoZeroDivisors.to_isDomain","statement":"∀ (α : Type u_3) [inst : Ring.{u_3} α] [h : Nontrivial.{u_3} α]\n  [@NoZeroDivisors.{u_3} α (@Distrib.toMul.{u_3} α (@instDistribOfSemiring.{u_3} α (@Ring.toSemiring.{u_3} α inst)))\n      (@MulZeroClass.toZero.{u_3} α (@instMulZeroClassOfSemiring.{u_3} α (@Ring.toSemiring.{u_3} α inst)))],\n  @IsDomain.{u_3} α (@Ring.toSemiring.{u_3} α inst)"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-df4eb839d54b698bb38694c92d905b801498007232865640b0daf3aa2b71230a","qualified_name":"Odd.coprime_two_left","statement":"∀ {n : Nat},\n  @Odd.{0} Nat Nat.instSemiring n → Nat.Coprime (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))) n"},{"kind":"theorem","module":"Mathlib.Data.Nat.Prime.Basic","object_id":"object-87475c9e35f59ea90f84b359b619c64b8d708d3361cce50aaf579b49ed058a23","qualified_name":"Odd.coprime_two_right","statement":"∀ {n : Nat}, @Odd.{0} Nat Nat.instSemiring n → n.Coprime (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2)))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-a79c642388eebe20ab13d8d60c79b56c64a0f16f11e3f16fe5fddf342e5df6e1","qualified_name":"Option.rec_update","statement":"∀ {α : Type u_1} {β : Option.{u_1} α → Sort u_2} [inst : DecidableEq.{u_1 + 1} α] (f : β (@Option.none.{u_1} α))\n  (g : (a : α) → β (@Option.some.{u_1} α a)) (a : α) (x : β (@Option.some.{u_1} α a)),\n  @Eq.{imax (u_1 + 1) u_2} ((a : Option.{u_1} α) → β a)\n    (fun t =>\n      @Option.rec.{u_2, u_1} α (fun x => β x) f\n        (@Function.update.{u_1 + 1, u_2} α (fun val => β (@Option.some.{u_1} α val)) inst g a x) t)\n    (@Function.update.{u_1 + 1, u_2} (Option.{u_1} α) β (fun a b => @Option.instDecidableEq.{u_1} α inst a b)\n      (fun t => @Option.rec.{u_2, u_1} α (fun x => β x) f g t) (@Option.some.{u_1} α a) x)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-f3fc57acc1ef179d28a95744914fd93183841b3947ff46be78afb7e343a29218","qualified_name":"Order.Preimage","statement":"{α : Type u_2} → {β : Type u_3} → (α → β) → (β → β → Prop) → α → α → Prop"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-2a23e07cb434c7ca9e31d0c664efdeffddb75649ddb071efbb70470d53a5ec36","qualified_name":"Order.Preimage.decidable","statement":"{α : Type u_2} →\n  {β : Type u_3} →\n    (f : α → β) →\n      (s : β → β → Prop) →\n        [H : @DecidableRel.{u_3 + 1, u_3 + 1} β β s] →\n          @DecidableRel.{u_2 + 1, u_2 + 1} α α (@Order.Preimage.{u_2, u_3} α β f s)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-969ab8871c8c24a9cf31a1cd4caa580306383b766693fa40988e7935972e316e","qualified_name":"PUnit.instDenselyOrdered","statement":"@DenselyOrdered.{u_5} PUnit.{u_5 + 1}\n  (@Preorder.toLT.{u_5} PUnit.{u_5 + 1}\n    (@PartialOrder.toPreorder.{u_5} PUnit.{u_5 + 1}\n      (@LinearOrder.toPartialOrder.{u_5} PUnit.{u_5 + 1} PUnit.instLinearOrder.{u_5})))"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-911e50004609d97d2b5a85c4951788731d4de117132ae5b11e4b629b04cbc985","qualified_name":"PUnit.instLinearOrder","statement":"LinearOrder.{u_5} PUnit.{u_5 + 1}"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-1191078387747449c9fe77a21aef5c988a1537dea6920f7b35c43756836140aa","qualified_name":"PUnit.le","statement":"∀ (a b : PUnit.{u_5 + 1}),\n  @LE.le.{u_5} PUnit.{u_5 + 1}\n    (@Preorder.toLE.{u_5} PUnit.{u_5 + 1}\n      (@PartialOrder.toPreorder.{u_5} PUnit.{u_5 + 1}\n        (@LinearOrder.toPartialOrder.{u_5} PUnit.{u_5 + 1} PUnit.instLinearOrder.{u_5})))\n    a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-3dcbf89b3c9bfee2c09afca9075332908fc667dd850cc433765b868b9ae08b8d","qualified_name":"PUnit.max_eq","statement":"∀ (a b : PUnit.{u_5 + 1}),\n  @Eq.{u_5 + 1} PUnit.{u_5 + 1}\n    (@Max.max.{u_5} PUnit.{u_5 + 1} (@LinearOrder.toMax.{u_5} PUnit.{u_5 + 1} PUnit.instLinearOrder.{u_5}) a b)\n    PUnit.unit.{u_5 + 1}"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-32a39a4e58716eb1c9b2d7857fe0845481ee8ab031d83ed993716f5db6ff13f8","qualified_name":"PUnit.min_eq","statement":"∀ (a b : PUnit.{u_5 + 1}),\n  @Eq.{u_5 + 1} PUnit.{u_5 + 1}\n    (@Min.min.{u_5} PUnit.{u_5 + 1} (@LinearOrder.toMin.{u_5} PUnit.{u_5 + 1} PUnit.instLinearOrder.{u_5}) a b)\n    PUnit.unit.{u_5 + 1}"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-aaa0fffac135723a0eb56849a59c8a49ad69df0447a299391a1cf4be81fd80ec","qualified_name":"PUnit.not_lt","statement":"∀ (a b : PUnit.{u_5 + 1}),\n  Not\n    (@LT.lt.{u_5} PUnit.{u_5 + 1}\n      (@Preorder.toLT.{u_5} PUnit.{u_5 + 1}\n        (@PartialOrder.toPreorder.{u_5} PUnit.{u_5 + 1}\n          (@LinearOrder.toPartialOrder.{u_5} PUnit.{u_5 + 1} PUnit.instLinearOrder.{u_5})))\n      a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-578547ab625879de27610411b285d32f095ea0dda3e80a7c9a28d7483d1a45c3","qualified_name":"PartialOrder.ext","statement":"∀ {α : Type u_2} {A B : PartialOrder.{u_2} α},\n  (∀ (x y : α),\n      Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α A)) x y)\n        (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α B)) x y)) →\n    @Eq.{u_2 + 1} (PartialOrder.{u_2} α) A B"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-eda42c01ebe5a5258b101e51b5ae0cfacd9d243aef75fbfb1873fdf1eb38a100","qualified_name":"PartialOrder.ext_lt","statement":"∀ {α : Type u_2} {A B : PartialOrder.{u_2} α},\n  (∀ (x y : α),\n      Iff (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α A)) x y)\n        (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α B)) x y)) →\n    @Eq.{u_2 + 1} (PartialOrder.{u_2} α) A B"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-9afe6a592b0330d23bd372823cb3bdddd0555aaa949aab5c3787c0915ae90004","qualified_name":"PartialOrder.lift","statement":"{α : Type u_2} →\n  {β : Type u_3} →\n    [PartialOrder.{u_3} β] → (f : α → β) → @Function.Injective.{u_2 + 1, u_3 + 1} α β f → PartialOrder.{u_2} α"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-4f035df54af657e1e2c9d160b986136dd2703b4001606058895305ff25d1338a","qualified_name":"PartialOrder.toPreorder_injective","statement":"∀ {α : Type u_2},\n  @Function.Injective.{u_2 + 1, u_2 + 1} (PartialOrder.{u_2} α) (Preorder.{u_2} α) (@PartialOrder.toPreorder.{u_2} α)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-dc6d116c425e4577ef41bfbf270512d0511e4cff8da89c66a069cf20a2047b6f","qualified_name":"PartialOrder.toPreorder_injective_iff","statement":"∀ {α : Type u_2} {a₁ a₂ : PartialOrder.{u_2} α},\n  Iff (@Eq.{u_2 + 1} (PartialOrder.{u_2} α) a₁ a₂)\n    (@Eq.{u_2 + 1} (Preorder.{u_2} α) (@PartialOrder.toPreorder.{u_2} α a₁) (@PartialOrder.toPreorder.{u_2} α a₂))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-68572f317f8790d603598e6bbcddb7338105c4a7cbb3bd9748181c0db673805c","qualified_name":"Pi.compl_apply","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → Compl.{u_4} (π i)] (x : (i : ι) → π i) (i : ι),\n  @Eq.{u_4 + 1} (π i) (@Compl.compl.{max u_1 u_4} ((i : ι) → π i) (@Pi.instCompl.{u_1, u_4} ι π inst) x i)\n    (@Compl.compl.{u_4} (π i) (inst i) (x i))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-167949494c734769e74dc536ee3011fb5d711a1f6fbcd3d2559496f25367ede2","qualified_name":"Pi.compl_def","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → Compl.{u_4} (π i)] (x : (i : ι) → π i),\n  @Eq.{max (u_1 + 1) (u_4 + 1)} ((i : ι) → π i)\n    (@Compl.compl.{max u_1 u_4} ((i : ι) → π i) (@Pi.instCompl.{u_1, u_4} ι π inst) x) fun i =>\n    @Compl.compl.{u_4} (π i) (inst i) (x i)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-b4d4f8f363fe59c8a34ebeca46e8c3495b6e00f9aaae96307c77a4ef1452249f","qualified_name":"Pi.himp_apply","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → HImp.{u_4} (π i)] (x y : (i : ι) → π i) (i : ι),\n  @Eq.{u_4 + 1} (π i) (@HImp.himp.{max u_1 u_4} ((i : ι) → π i) (@Pi.instHImp.{u_1, u_4} ι π inst) y x i)\n    (@HImp.himp.{u_4} (π i) (inst i) (y i) (x i))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-3394dcfaebdb8ec5dadffae8f1497ccfa9df0fa6f3dda0504c9d33adf379c067","qualified_name":"Pi.himp_def","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → HImp.{u_4} (π i)] (x y : (i : ι) → π i),\n  @Eq.{max (u_1 + 1) (u_4 + 1)} ((i : ι) → π i)\n    (@HImp.himp.{max u_1 u_4} ((i : ι) → π i) (@Pi.instHImp.{u_1, u_4} ι π inst) y x) fun i =>\n    @HImp.himp.{u_4} (π i) (inst i) (y i) (x i)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-72bacf4da6f0d2eac358bc9f1ebc48c02111c539139df3349786e5c2abbbc422","qualified_name":"Pi.hnot_apply","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → HNot.{u_4} (π i)] (x : (i : ι) → π i) (i : ι),\n  @Eq.{u_4 + 1} (π i) (@HNot.hnot.{max u_1 u_4} ((i : ι) → π i) (@Pi.instHNot.{u_1, u_4} ι π inst) x i)\n    (@HNot.hnot.{u_4} (π i) (inst i) (x i))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-8789f1d54ac3537c71aecf38d399d7977eb303a2b67113fcd159ddf076588c06","qualified_name":"Pi.hnot_def","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → HNot.{u_4} (π i)] (x : (i : ι) → π i),\n  @Eq.{max (u_1 + 1) (u_4 + 1)} ((i : ι) → π i)\n    (@HNot.hnot.{max u_1 u_4} ((i : ι) → π i) (@Pi.instHNot.{u_1, u_4} ι π inst) x) fun i =>\n    @HNot.hnot.{u_4} (π i) (inst i) (x i)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-a5f99cc60542d1c2bf2cc40c8834ef279c6f2b5fee341815c4f145e34ffabae6","qualified_name":"Pi.instCompl","statement":"{ι : Type u_1} → {π : ι → Type u_4} → [(i : ι) → Compl.{u_4} (π i)] → Compl.{max u_1 u_4} ((i : ι) → π i)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-baeed87850a647944991c69a8cda9b694161bbc718c128c3816d255a05b35102","qualified_name":"Pi.instHImp","statement":"{ι : Type u_1} → {π : ι → Type u_4} → [(i : ι) → HImp.{u_4} (π i)] → HImp.{max u_1 u_4} ((i : ι) → π i)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-8b4e566352aa07133f7be938130cb63610c06268c17ce7dc689d9c8cc744b47d","qualified_name":"Pi.instHNot","statement":"{ι : Type u_1} → {π : ι → Type u_4} → [(i : ι) → HNot.{u_4} (π i)] → HNot.{max u_1 u_4} ((i : ι) → π i)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-ae17e26ccf22552d2ea284c38c54d182971a57e61bf0cc2c1dc68e81480e4d51","qualified_name":"Pi.instSDiff","statement":"{ι : Type u_1} → {π : ι → Type u_4} → [(i : ι) → SDiff.{u_4} (π i)] → SDiff.{max u_1 u_4} ((i : ι) → π i)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-0353476583393a49d7960bf51be072e70e366bf38b6f4a6318d0ec5d60e483e2","qualified_name":"Pi.lt_def","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → Preorder.{u_4} (π i)] {x y : (i : ι) → π i},\n  Iff\n    (@LT.lt.{max u_1 u_4} ((i : ι) → π i)\n      (@Preorder.toLT.{max u_1 u_4} ((i : ι) → π i) (@Pi.preorder.{u_1, u_4} ι π inst)) x y)\n    (And\n      (@LE.le.{max u_1 u_4} ((i : ι) → π i) (@Pi.hasLe.{u_1, u_4} ι π fun i => @Preorder.toLE.{u_4} (π i) (inst i)) x y)\n      (∃ i, @LT.lt.{u_4} (π i) (@Preorder.toLT.{u_4} (π i) (inst i)) (x i) (y i)))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-956e994e758b63f6d1ec4119e538e9805cb92e5d97c944ce7cc5ed4c411f5dcc","qualified_name":"Pi.map_comp_map","statement":"∀ {ι : Type u_3} {α : ι → Type u_4} {β : ι → Type u_5} {γ : ι → Type u_6} (f : (i : ι) → α i → β i)\n  (g : (i : ι) → β i → γ i),\n  @Eq.{max (max (u_3 + 1) (u_4 + 1)) (u_6 + 1)} (((i : ι) → α i) → (i : ι) → γ i)\n    (@Function.comp.{max (u_3 + 1) (u_4 + 1), max (u_3 + 1) (u_5 + 1), max (u_3 + 1) (u_6 + 1)} ((i : ι) → α i)\n      ((i : ι) → β i) ((i : ι) → γ i) (@Pi.map.{u_3 + 1, u_5 + 1, u_6 + 1} ι β γ g)\n      (@Pi.map.{u_3 + 1, u_4 + 1, u_5 + 1} ι α β f))\n    (@Pi.map.{u_3 + 1, u_4 + 1, u_6 + 1} ι α γ fun i =>\n      @Function.comp.{u_4 + 1, u_5 + 1, u_6 + 1} (α i) (β i) (γ i) (g i) (f i))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-f7fcd01f9ff433c1b6c9c93d8fa527266e7928d98ce1c6d45ce81c7ee7593eae","qualified_name":"Pi.map_id","statement":"∀ {ι : Type u_3} {α : ι → Type u_4},\n  @Eq.{max (u_3 + 1) (u_4 + 1)} (((i : ι) → α i) → (i : ι) → α i)\n    (@Pi.map.{u_3 + 1, u_4 + 1, u_4 + 1} ι α α fun i => @id.{u_4 + 1} (α i))\n    (@id.{max (u_3 + 1) (u_4 + 1)} ((i : ι) → α i))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-e68069613ce3b27f7577b15e1e6ff3d14b8a1b5fbe6e286f07befc68e330809b","qualified_name":"Pi.map_id'","statement":"∀ {ι : Type u_3} {α : ι → Type u_4},\n  @Eq.{max (u_3 + 1) (u_4 + 1)} (((i : ι) → α i) → (i : ι) → α i)\n    (@Pi.map.{u_3 + 1, u_4 + 1, u_4 + 1} ι α α fun i a => a) fun x => x"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-24c9bf6adc4c42eba459e642ac2295d58db7752d1c6bf1eb93c60e007308b811","qualified_name":"Pi.map_injective","statement":"∀ {ι : Sort u_1} {α : ι → Sort u_2} {β : ι → Sort u_3} [∀ (i : ι), Nonempty.{u_2} (α i)] {f : (i : ι) → α i → β i},\n  Iff\n    (@Function.Injective.{imax u_1 u_2, imax u_1 u_3} ((i : ι) → α i) ((i : ι) → β i) (@Pi.map.{u_1, u_2, u_3} ι α β f))\n    (∀ (i : ι), @Function.Injective.{u_2, u_3} (α i) (β i) (f i))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-3b9c945f09cd69d43c1a0028dda356c3db00422a286aa469159e91fa37803571","qualified_name":"Pi.map_update","statement":"∀ {ι : Sort u_1} [inst : DecidableEq.{u_1} ι] {α : ι → Sort u_2} {β : ι → Sort u_3} {f : (i : ι) → α i → β i}\n  (g : (i : ι) → α i) (i : ι) (a : α i),\n  @Eq.{imax u_1 u_3} ((i : ι) → β i) (@Pi.map.{u_1, u_2, u_3} ι α β f (@Function.update.{u_1, u_2} ι α inst g i a))\n    (@Function.update.{u_1, u_3} ι β inst (@Pi.map.{u_1, u_2, u_3} ι α β f g) i (f i a))"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-72875474abe0b0d02b4373418f135635abcd4120f4f9a31864a30d537f4682f2","qualified_name":"Pi.partialOrder","statement":"{ι : Type u_1} → {π : ι → Type u_4} → [(i : ι) → PartialOrder.{u_4} (π i)] → PartialOrder.{max u_1 u_4} ((i : ι) → π i)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-2f4040c48fc6598e4cc762538620887297edd3d5fae69e9c3746b269950ec2be","qualified_name":"Pi.preorder","statement":"{ι : Type u_1} → {π : ι → Type u_4} → [(i : ι) → Preorder.{u_4} (π i)] → Preorder.{max u_1 u_4} ((i : ι) → π i)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-c3d421d0cad1b72df9d9e9311bded9c4a16a862565351452caa6304ef4ac3c41","qualified_name":"Pi.sdiff_apply","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → SDiff.{u_4} (π i)] (x y : (i : ι) → π i) (i : ι),\n  @Eq.{u_4 + 1} (π i) (@SDiff.sdiff.{max u_1 u_4} ((i : ι) → π i) (@Pi.instSDiff.{u_1, u_4} ι π inst) x y i)\n    (@SDiff.sdiff.{u_4} (π i) (inst i) (x i) (y i))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-545704fe5fa28687c04bd1438e7c6ada1be908a8c1d73cc8de10fc6bd5ee038d","qualified_name":"Pi.sdiff_def","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → SDiff.{u_4} (π i)] (x y : (i : ι) → π i),\n  @Eq.{max (u_1 + 1) (u_4 + 1)} ((i : ι) → π i)\n    (@SDiff.sdiff.{max u_1 u_4} ((i : ι) → π i) (@Pi.instSDiff.{u_1, u_4} ι π inst) x y) fun i =>\n    @SDiff.sdiff.{u_4} (π i) (inst i) (x i) (y i)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-f7d8306bd430add25a629358dec544df19e142da8034a0b15dbaf99e5aa3b804","qualified_name":"Preorder.ext","statement":"∀ {α : Type u_2} {A B : Preorder.{u_2} α},\n  (∀ (x y : α), Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α A) x y) (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α B) x y)) →\n    @Eq.{u_2 + 1} (Preorder.{u_2} α) A B"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-d0bab17e13ae10c0086615057ba807297b83fc02bd94c5fd808fa8a2e89d8435","qualified_name":"Preorder.lift","statement":"{α : Type u_2} → {β : Type u_3} → [Preorder.{u_3} β] → (α → β) → Preorder.{u_2} α"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-6044fb92643489b9d6bd326ad042bfd2f71890e4da99393b04a2d49e1b2b9266","qualified_name":"Preorder.toLE_injective","statement":"∀ {α : Type u_2}, @Function.Injective.{u_2 + 1, u_2 + 1} (Preorder.{u_2} α) (LE.{u_2} α) (@Preorder.toLE.{u_2} α)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-eb076b93d84283970be61a4a1bfb9645024f6db38a141d0102be2ecc6751e278","qualified_name":"Preorder.toLE_injective_iff","statement":"∀ {α : Type u_2} {a₁ a₂ : Preorder.{u_2} α},\n  Iff (@Eq.{u_2 + 1} (Preorder.{u_2} α) a₁ a₂)\n    (@Eq.{u_2 + 1} (LE.{u_2} α) (@Preorder.toLE.{u_2} α a₁) (@Preorder.toLE.{u_2} α a₂))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-a0ce9ed04187037abb8063d18b58d2f305a245ea6140c42affb3cd9303f935e0","qualified_name":"Prod.GCongr.mk_le_mk","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : LE.{u_2} α] [inst_1 : LE.{u_3} β] {a₁ a₂ : α} {b₁ b₂ : β},\n  @LE.le.{u_2} α inst a₁ a₂ →\n    @LE.le.{u_3} β inst_1 b₁ b₂ →\n      @LE.le.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instLE_mathlib.{u_2, u_3} α β inst inst_1)\n        (@Prod.mk.{u_2, u_3} α β a₁ b₁) (@Prod.mk.{u_2, u_3} α β a₂ b₂)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-5b71f32ea2dd47ea78466cb57563cea6f2efe200840681d6c0fea1996de1ff59","qualified_name":"Prod.instDecidableLE","statement":"{α : Type u_2} →\n  {β : Type u_3} →\n    [inst : LE.{u_2} α] →\n      [inst_1 : LE.{u_3} β] →\n        {x y : Prod.{u_2, u_3} α β} →\n          [Decidable (@LE.le.{u_2} α inst (@Prod.fst.{u_2, u_3} α β x) (@Prod.fst.{u_2, u_3} α β y))] →\n            [Decidable (@LE.le.{u_3} β inst_1 (@Prod.snd.{u_2, u_3} α β x) (@Prod.snd.{u_2, u_3} α β y))] →\n              Decidable\n                (@LE.le.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instLE_mathlib.{u_2, u_3} α β inst inst_1) x y)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-2fb4fdbca7a2895d40d9d0b8f8afe1247aa9ee36aa2098b5190fac195ad94eeb","qualified_name":"Prod.instLE_mathlib","statement":"{α : Type u_2} → {β : Type u_3} → [LE.{u_2} α] → [LE.{u_3} β] → LE.{max u_3 u_2} (Prod.{u_2, u_3} α β)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-254b7518003397aefee1730d8b5342dd76722c111a945414ff9b2f7afd835e0d","qualified_name":"Prod.instPartialOrder","statement":"(α : Type u_5) →\n  (β : Type u_6) → [PartialOrder.{u_5} α] → [PartialOrder.{u_6} β] → PartialOrder.{max u_6 u_5} (Prod.{u_5, u_6} α β)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-e71751d1f2dfedc8d6cb623e507faee787eb2218fc154492c6dfbb2143cefbcf","qualified_name":"Prod.instPreorder","statement":"{α : Type u_2} → {β : Type u_3} → [Preorder.{u_2} α] → [Preorder.{u_3} β] → Preorder.{max u_3 u_2} (Prod.{u_2, u_3} α β)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-179fa423773941b8fd243771be8d34973ed383c2b47e73f445c6257edd96b56a","qualified_name":"Prod.le_def","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : LE.{u_2} α] [inst_1 : LE.{u_3} β] {x y : Prod.{u_2, u_3} α β},\n  Iff (@LE.le.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instLE_mathlib.{u_2, u_3} α β inst inst_1) x y)\n    (And (@LE.le.{u_2} α inst (@Prod.fst.{u_2, u_3} α β x) (@Prod.fst.{u_2, u_3} α β y))\n      (@LE.le.{u_3} β inst_1 (@Prod.snd.{u_2, u_3} α β x) (@Prod.snd.{u_2, u_3} α β y)))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-255e7689282d51c5d29a8ad48f7affd3532fda1ea6b920fbd7d77076cb7e1e4a","qualified_name":"Prod.lt_iff","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [inst_1 : Preorder.{u_3} β] {x y : Prod.{u_2, u_3} α β},\n  Iff\n    (@LT.lt.{max u_2 u_3} (Prod.{u_2, u_3} α β)\n      (@Preorder.toLT.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instPreorder.{u_2, u_3} α β inst inst_1)) x y)\n    (Or\n      (And (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) (@Prod.fst.{u_2, u_3} α β x) (@Prod.fst.{u_2, u_3} α β y))\n        (@LE.le.{u_3} β (@Preorder.toLE.{u_3} β inst_1) (@Prod.snd.{u_2, u_3} α β x) (@Prod.snd.{u_2, u_3} α β y)))\n      (And (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) (@Prod.fst.{u_2, u_3} α β x) (@Prod.fst.{u_2, u_3} α β y))\n        (@LT.lt.{u_3} β (@Preorder.toLT.{u_3} β inst_1) (@Prod.snd.{u_2, u_3} α β x) (@Prod.snd.{u_2, u_3} α β y))))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-6faf31c0ba9b88f391e71a752e3bf19c1cbe01272b72424085462a44967b06ca","qualified_name":"Prod.lt_of_le_of_lt","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [inst_1 : Preorder.{u_3} β] {x y : Prod.{u_2, u_3} α β},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) (@Prod.fst.{u_2, u_3} α β x) (@Prod.fst.{u_2, u_3} α β y) →\n    @LT.lt.{u_3} β (@Preorder.toLT.{u_3} β inst_1) (@Prod.snd.{u_2, u_3} α β x) (@Prod.snd.{u_2, u_3} α β y) →\n      @LT.lt.{max u_2 u_3} (Prod.{u_2, u_3} α β)\n        (@Preorder.toLT.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instPreorder.{u_2, u_3} α β inst inst_1)) x y"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-b9a3d1778efc0bbf013469e5748b70222b8d0ac07a68ab6e107d89cf4e00cec1","qualified_name":"Prod.lt_of_lt_of_le","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [inst_1 : Preorder.{u_3} β] {x y : Prod.{u_2, u_3} α β},\n  @LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) (@Prod.fst.{u_2, u_3} α β x) (@Prod.fst.{u_2, u_3} α β y) →\n    @LE.le.{u_3} β (@Preorder.toLE.{u_3} β inst_1) (@Prod.snd.{u_2, u_3} α β x) (@Prod.snd.{u_2, u_3} α β y) →\n      @LT.lt.{max u_2 u_3} (Prod.{u_2, u_3} α β)\n        (@Preorder.toLT.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instPreorder.{u_2, u_3} α β inst inst_1)) x y"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-8f70c39d8ace89ae8a42251f9f871125c7a89ae5da4549b930d480ce1ac23bee","qualified_name":"Prod.mk_le_mk","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : LE.{u_2} α] [inst_1 : LE.{u_3} β] {a₁ a₂ : α} {b₁ b₂ : β},\n  Iff\n    (@LE.le.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instLE_mathlib.{u_2, u_3} α β inst inst_1)\n      (@Prod.mk.{u_2, u_3} α β a₁ b₁) (@Prod.mk.{u_2, u_3} α β a₂ b₂))\n    (And (@LE.le.{u_2} α inst a₁ a₂) (@LE.le.{u_3} β inst_1 b₁ b₂))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-5466160a61dbbff58afcf674a3d2c12def5308da45877e947880a598bf3d0c69","qualified_name":"Prod.mk_le_mk_iff_left","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [inst_1 : Preorder.{u_3} β] {a₁ a₂ : α} {b : β},\n  Iff\n    (@LE.le.{max u_2 u_3} (Prod.{u_2, u_3} α β)\n      (@Prod.instLE_mathlib.{u_2, u_3} α β (@Preorder.toLE.{u_2} α inst) (@Preorder.toLE.{u_3} β inst_1))\n      (@Prod.mk.{u_2, u_3} α β a₁ b) (@Prod.mk.{u_2, u_3} α β a₂ b))\n    (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a₁ a₂)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-e16c3e209513407f9a10bd94ac3b5dacd8265bf4f6e80f6d7859932733f0392b","qualified_name":"Prod.mk_le_mk_iff_right","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [inst_1 : Preorder.{u_3} β] {a : α} {b₁ b₂ : β},\n  Iff\n    (@LE.le.{max u_2 u_3} (Prod.{u_2, u_3} α β)\n      (@Prod.instLE_mathlib.{u_2, u_3} α β (@Preorder.toLE.{u_2} α inst) (@Preorder.toLE.{u_3} β inst_1))\n      (@Prod.mk.{u_2, u_3} α β a b₁) (@Prod.mk.{u_2, u_3} α β a b₂))\n    (@LE.le.{u_3} β (@Preorder.toLE.{u_3} β inst_1) b₁ b₂)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-27d6458ee9ebfee0f78e1314662961b394266281ca60bb2ed1dd3f14e542329e","qualified_name":"Prod.mk_le_swap","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : LE.{u_2} α] [inst_1 : LE.{u_3} β] {x : Prod.{u_2, u_3} α β} {a : α} {b : β},\n  Iff\n    (@LE.le.{max u_2 u_3} (Prod.{u_3, u_2} β α) (@Prod.instLE_mathlib.{u_3, u_2} β α inst_1 inst)\n      (@Prod.mk.{u_3, u_2} β α b a) (@Prod.swap.{u_2, u_3} α β x))\n    (@LE.le.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instLE_mathlib.{u_2, u_3} α β inst inst_1)\n      (@Prod.mk.{u_2, u_3} α β a b) x)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-ddf75e09858e62cc4a6927116dcb557c5c6f4b63f96f8c57caa300979368c37a","qualified_name":"Prod.mk_lt_mk","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [inst_1 : Preorder.{u_3} β] {a₁ a₂ : α} {b₁ b₂ : β},\n  Iff\n    (@LT.lt.{max u_2 u_3} (Prod.{u_2, u_3} α β)\n      (@Preorder.toLT.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instPreorder.{u_2, u_3} α β inst inst_1))\n      (@Prod.mk.{u_2, u_3} α β a₁ b₁) (@Prod.mk.{u_2, u_3} α β a₂ b₂))\n    (Or\n      (And (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) a₁ a₂) (@LE.le.{u_3} β (@Preorder.toLE.{u_3} β inst_1) b₁ b₂))\n      (And (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a₁ a₂) (@LT.lt.{u_3} β (@Preorder.toLT.{u_3} β inst_1) b₁ b₂)))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-acc9c52a4375642b9692102025f89ae2adeefdca88190d494e916169dbce858e","qualified_name":"Prod.mk_lt_mk_iff_left","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [inst_1 : Preorder.{u_3} β] {a₁ a₂ : α} {b : β},\n  Iff\n    (@LT.lt.{max u_2 u_3} (Prod.{u_2, u_3} α β)\n      (@Preorder.toLT.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instPreorder.{u_2, u_3} α β inst inst_1))\n      (@Prod.mk.{u_2, u_3} α β a₁ b) (@Prod.mk.{u_2, u_3} α β a₂ b))\n    (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) a₁ a₂)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-b8173dfb5724a073443d34daceed2f3e20c449b757e2cda3b27d69631387d3d1","qualified_name":"Prod.mk_lt_mk_iff_right","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [inst_1 : Preorder.{u_3} β] {a : α} {b₁ b₂ : β},\n  Iff\n    (@LT.lt.{max u_2 u_3} (Prod.{u_2, u_3} α β)\n      (@Preorder.toLT.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instPreorder.{u_2, u_3} α β inst inst_1))\n      (@Prod.mk.{u_2, u_3} α β a b₁) (@Prod.mk.{u_2, u_3} α β a b₂))\n    (@LT.lt.{u_3} β (@Preorder.toLT.{u_3} β inst_1) b₁ b₂)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-9ebbec2ad2eeaed420bd0634f39bb7399b33d1918ccd748f4d29226f7886f6d5","qualified_name":"Prod.mk_lt_mk_of_le_of_lt","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [inst_1 : Preorder.{u_3} β] {a₁ a₂ : α} {b₁ b₂ : β},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a₁ a₂ →\n    @LT.lt.{u_3} β (@Preorder.toLT.{u_3} β inst_1) b₁ b₂ →\n      @LT.lt.{max u_2 u_3} (Prod.{u_2, u_3} α β)\n        (@Preorder.toLT.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instPreorder.{u_2, u_3} α β inst inst_1))\n        (@Prod.mk.{u_2, u_3} α β a₁ b₁) (@Prod.mk.{u_2, u_3} α β a₂ b₂)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-65eb778f6880fd6ca07c44b1afd39edd3bd3567cca99d1b24a20b63292ff2149","qualified_name":"Prod.mk_lt_mk_of_lt_of_le","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [inst_1 : Preorder.{u_3} β] {a₁ a₂ : α} {b₁ b₂ : β},\n  @LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) a₁ a₂ →\n    @LE.le.{u_3} β (@Preorder.toLE.{u_3} β inst_1) b₁ b₂ →\n      @LT.lt.{max u_2 u_3} (Prod.{u_2, u_3} α β)\n        (@Preorder.toLT.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instPreorder.{u_2, u_3} α β inst inst_1))\n        (@Prod.mk.{u_2, u_3} α β a₁ b₁) (@Prod.mk.{u_2, u_3} α β a₂ b₂)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-53253c621f707e9834c4203dcb3b77f0acec77f6fa54d36371a7b7b02867d983","qualified_name":"Prod.mk_lt_swap","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [inst_1 : Preorder.{u_3} β] {a : α} {b : β}\n  {x : Prod.{u_2, u_3} α β},\n  Iff\n    (@LT.lt.{max u_2 u_3} (Prod.{u_3, u_2} β α)\n      (@Preorder.toLT.{max u_2 u_3} (Prod.{u_3, u_2} β α) (@Prod.instPreorder.{u_3, u_2} β α inst_1 inst))\n      (@Prod.mk.{u_3, u_2} β α b a) (@Prod.swap.{u_2, u_3} α β x))\n    (@LT.lt.{max u_2 u_3} (Prod.{u_2, u_3} α β)\n      (@Preorder.toLT.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instPreorder.{u_2, u_3} α β inst inst_1))\n      (@Prod.mk.{u_2, u_3} α β a b) x)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-0275d2035fe7cdded02b0b7bf4cb806893989d8a1672f19de29bbb096f4b4faa","qualified_name":"Prod.swap_le_mk","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : LE.{u_2} α] [inst_1 : LE.{u_3} β] {x : Prod.{u_2, u_3} α β} {a : α} {b : β},\n  Iff\n    (@LE.le.{max u_2 u_3} (Prod.{u_3, u_2} β α) (@Prod.instLE_mathlib.{u_3, u_2} β α inst_1 inst)\n      (@Prod.swap.{u_2, u_3} α β x) (@Prod.mk.{u_3, u_2} β α b a))\n    (@LE.le.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instLE_mathlib.{u_2, u_3} α β inst inst_1) x\n      (@Prod.mk.{u_2, u_3} α β a b))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-3e67ddb287e7792239d7fcd1f4550b34e8e0cfa8d7e0323aae4659123e43e5b5","qualified_name":"Prod.swap_le_swap","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : LE.{u_2} α] [inst_1 : LE.{u_3} β] {x y : Prod.{u_2, u_3} α β},\n  Iff\n    (@LE.le.{max u_2 u_3} (Prod.{u_3, u_2} β α) (@Prod.instLE_mathlib.{u_3, u_2} β α inst_1 inst)\n      (@Prod.swap.{u_2, u_3} α β x) (@Prod.swap.{u_2, u_3} α β y))\n    (@LE.le.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instLE_mathlib.{u_2, u_3} α β inst inst_1) x y)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-a6f504d5eb4b32f47f77566cb505f7d95da53a6507ec13825e1f89fcb39e9f15","qualified_name":"Prod.swap_lt_mk","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [inst_1 : Preorder.{u_3} β] {a : α} {b : β}\n  {x : Prod.{u_2, u_3} α β},\n  Iff\n    (@LT.lt.{max u_2 u_3} (Prod.{u_3, u_2} β α)\n      (@Preorder.toLT.{max u_2 u_3} (Prod.{u_3, u_2} β α) (@Prod.instPreorder.{u_3, u_2} β α inst_1 inst))\n      (@Prod.swap.{u_2, u_3} α β x) (@Prod.mk.{u_3, u_2} β α b a))\n    (@LT.lt.{max u_2 u_3} (Prod.{u_2, u_3} α β)\n      (@Preorder.toLT.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instPreorder.{u_2, u_3} α β inst inst_1)) x\n      (@Prod.mk.{u_2, u_3} α β a b))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-bf025e2bc07d34301c4bfd8779aac3b21fb2c6fd81094947c507b8b046c349f4","qualified_name":"Prod.swap_lt_swap","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [inst_1 : Preorder.{u_3} β] {x y : Prod.{u_2, u_3} α β},\n  Iff\n    (@LT.lt.{max u_2 u_3} (Prod.{u_3, u_2} β α)\n      (@Preorder.toLT.{max u_2 u_3} (Prod.{u_3, u_2} β α) (@Prod.instPreorder.{u_3, u_2} β α inst_1 inst))\n      (@Prod.swap.{u_2, u_3} α β x) (@Prod.swap.{u_2, u_3} α β y))\n    (@LT.lt.{max u_2 u_3} (Prod.{u_2, u_3} α β)\n      (@Preorder.toLT.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instPreorder.{u_2, u_3} α β inst inst_1)) x y)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-d23b934e40d410e027146cb2c9a997a1dbf1a811fe26181a868e952fcd267d49","qualified_name":"Prop.instCompl","statement":"Compl.{0} Prop"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-631e90a06e806719060a2beed05f470cc260476d1566bb9f28f36ad01a8c3ee9","qualified_name":"Prop.partialOrder","statement":"PartialOrder.{0} Prop"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-8b8f8d70ac019c138008468ea290825fa54fa601695d3d647fb9c435d4268ad0","qualified_name":"Real.abs_log_mul_self_rpow_lt","statement":"∀ (x t : Real),\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) t →\n        @LT.lt.{0} Real Real.instLT\n          (@abs.{0} Real Real.lattice Real.instAddGroup\n            (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (Real.log x)\n              (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x t)))\n          (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n            (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) t)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-c94cdea1fed497c8dc2ba74415d6061cf38013b98ffbeae1e36a359dad538f1b","qualified_name":"Real.abs_rpow_le_abs_rpow","statement":"∀ (x y : Real),\n  @LE.le.{0} Real Real.instLE\n    (@abs.{0} Real Real.lattice Real.instAddGroup\n      (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y))\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n      (@abs.{0} Real Real.lattice Real.instAddGroup x) y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-bb7e2968996cd4b7aa567c3aebfb2ed4db37c321b6dc6c5410be4f422dc83cb6","qualified_name":"Real.abs_rpow_le_exp_log_mul","statement":"∀ (x y : Real),\n  @LE.le.{0} Real Real.instLE\n    (@abs.{0} Real Real.lattice Real.instAddGroup\n      (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y))\n    (Real.exp (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (Real.log x) y))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-32718f4b82e6a841b68615f22663f549766cc80ee7c3c7f856ffc73df481b5d6","qualified_name":"Real.abs_rpow_of_nonneg","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Eq.{1} Real\n      (@abs.{0} Real Real.lattice Real.instAddGroup\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y))\n      (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n        (@abs.{0} Real Real.lattice Real.instAddGroup x) y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-902dd2c2fec23da485345ef904028f6e719bf18be75993de0446c6c3c2a0575c","qualified_name":"Real.antitoneOn_rpow_Ioi_of_exponent_nonpos","statement":"∀ {r : Real},\n  @LE.le.{0} Real Real.instLE r (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n    @AntitoneOn.{0, 0} Real Real Real.instPreorder Real.instPreorder\n      (fun x => @HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x r)\n      (@Set.Ioi.{0} Real Real.instPreorder (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-e41c2d915b39bd41e4954693a046e72fa1e7654fab95d698fed469ce8a0f665d","qualified_name":"Real.antitone_rpow_of_base_le_one","statement":"∀ {b : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) b →\n    @LE.le.{0} Real Real.instLE b (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @Antitone.{0, 0} Real Real Real.instPreorder Real.instPreorder fun x =>\n        @HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) b x"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-d957662d307ac038106de71aba2eea97d950fb57094bb5f78ebaa892b426574d","qualified_name":"Real.div_rpow","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      ∀ (z : Real),\n        @Eq.{1} Real\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n            (@HDiv.hDiv.{0, 0, 0} Real Real Real\n              (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid)) x y)\n            z)\n          (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-3455e6f4d28fc376a24014c9a8fa36a29314b11005531661e09f705946c31e96","qualified_name":"Real.eq_rpow_inv","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @Ne.{1} Real z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        Iff\n          (@Eq.{1} Real x\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y\n              (@Inv.inv.{0} Real Real.instInv z)))\n          (@Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z) y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-921c29e5e736195fe49724205aec50d4ca4a6edd41e4264c431a322a57b633ad","qualified_name":"Real.eq_zero_rpow_iff","statement":"∀ {x a : Real},\n  Iff\n    (@Eq.{1} Real a\n      (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n        (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x))\n    (Or\n      (And (@Ne.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n        (@Eq.{1} Real a (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))))\n      (And (@Eq.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n        (@Eq.{1} Real a (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-370a0c447fe5d48e1b8b388d10e2b9beea52a0560cba53853a4e38c0553dbf32","qualified_name":"Real.exp_mul","statement":"∀ (x y : Real),\n  @Eq.{1} Real (Real.exp (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) x y))\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) (Real.exp x) y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-e75eda6e06a5c2802f30f8133a6351bf68ddd5835ef9444f1df45188d1cf6478","qualified_name":"Real.exp_one_pow","statement":"∀ (n : Nat),\n  @Eq.{1} Real\n    (@HPow.hPow.{0, 0, 0} Real Nat Real\n      (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid)))\n      (Real.exp (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))) n)\n    (Real.exp (@Nat.cast.{0} Real Real.instNatCast n))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-6b004e583d65785ff76e9928ca083f471838c50b5713886f376648a4730eeca1","qualified_name":"Real.exp_one_rpow","statement":"∀ (x : Real),\n  @Eq.{1} Real\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n      (Real.exp (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))) x)\n    (Real.exp x)"},{"kind":"definition","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-e67e4c4b2ca9b7aff760aaafccedb0f6a85eab4ab58477bcd01cedb13d2ca1dd","qualified_name":"Real.instPow","statement":"Pow.{0, 0} Real Real"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-b36f1ffac3745f0ac082e25490e4bd59daba1d6496ecb74b31c5d00416e9db24","qualified_name":"Real.inv_rpow","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y : Real),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n          (@Inv.inv.{0} Real Real.instInv x) y)\n        (@Inv.inv.{0} Real Real.instInv\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-e294e6ef96e4869a81d8d34759fa018b29ad66545404cf28c58e0e42faf07692","qualified_name":"Real.le_log_of_pow_le","statement":"∀ {x y : Real} {n : Nat},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE\n        (@HPow.hPow.{0, 0, 0} Real Nat Real\n          (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) x n)\n        y →\n      @LE.le.{0} Real Real.instLE\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Nat.cast.{0} Real Real.instNatCast n)\n          (Real.log x))\n        (Real.log y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-081e965fd4d34e4aad73214b6d6b9b7c369462814ac6aa491528d1a6e5b09b4f","qualified_name":"Real.le_log_of_rpow_le","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z) y →\n      @LE.le.{0} Real Real.instLE (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) z (Real.log x))\n        (Real.log y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-a1c4240b3d5cb31646e1140f3502d58b55b28bfe91a375f24f5b4521978497a6","qualified_name":"Real.le_log_of_zpow_le","statement":"∀ {x y : Real} {n : Int},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE\n        (@HPow.hPow.{0, 0, 0} Real Int Real\n          (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) x n)\n        y →\n      @LE.le.{0} Real Real.instLE\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Int.cast.{0} Real Real.instIntCast n)\n          (Real.log x))\n        (Real.log y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-a9d43079f37d3d7ece347f456345dc8158705edc738b2aafdecdc5d2bab60bde","qualified_name":"Real.le_pow_iff_log_le","statement":"∀ {x y : Real} {n : Nat},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      Iff\n        (@LE.le.{0} Real Real.instLE x\n          (@HPow.hPow.{0, 0, 0} Real Nat Real\n            (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) y n))\n        (@LE.le.{0} Real Real.instLE (Real.log x)\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Nat.cast.{0} Real Real.instNatCast n)\n            (Real.log y)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-e8488860a34ec6842cb0bbdda94fbf7618ec62a8f2433ffada616908df5ce11b","qualified_name":"Real.le_pow_of_log_le","statement":"∀ {x y : Real} {n : Nat},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n    @LE.le.{0} Real Real.instLE (Real.log x)\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Nat.cast.{0} Real Real.instNatCast n)\n          (Real.log y)) →\n      @LE.le.{0} Real Real.instLE x\n        (@HPow.hPow.{0, 0, 0} Real Nat Real\n          (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) y n)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-2afa540b94be223f76842ab21eec622a142269b518f9985749db4e79affdea17","qualified_name":"Real.le_rpow_add","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y z : Real),\n      @LE.le.{0} Real Real.instLE\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z))\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd) y z))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-9c96550d71f3ac57b0b36f9a5d3ec915b18e8ffcde8a2219c8ad8a6c1ab7396d","qualified_name":"Real.le_rpow_iff_log_le","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      Iff\n        (@LE.le.{0} Real Real.instLE x\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z))\n        (@LE.le.{0} Real Real.instLE (Real.log x)\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) z (Real.log y)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-9466af277a940bf46819978ef7bb272ffe2f1353aca6bf02186abd37aa319c32","qualified_name":"Real.le_rpow_inv_iff_of_neg","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @LT.lt.{0} Real Real.instLT z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        Iff\n          (@LE.le.{0} Real Real.instLE x\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y\n              (@Inv.inv.{0} Real Real.instInv z)))\n          (@LE.le.{0} Real Real.instLE y\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-06b802e404fb2130337e75ac5b20850bf362c388274f927d306b1151a0e439a1","qualified_name":"Real.le_rpow_inv_iff_of_pos","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) z →\n        Iff\n          (@LE.le.{0} Real Real.instLE x\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y\n              (@Inv.inv.{0} Real Real.instInv z)))\n          (@LE.le.{0} Real Real.instLE\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z) y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-e8790c439727ec314fe63c430e1e37b47e5cf6e51febeee7b081e0118aa91469","qualified_name":"Real.le_rpow_of_log_le","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n    @LE.le.{0} Real Real.instLE (Real.log x)\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) z (Real.log y)) →\n      @LE.le.{0} Real Real.instLE x (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-6304d7b2035bdf316116279aad8fa1df19e02b6c551a5085b8eec94f3a4b2b34","qualified_name":"Real.le_zpow_iff_log_le","statement":"∀ {x y : Real} {n : Int},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      Iff\n        (@LE.le.{0} Real Real.instLE x\n          (@HPow.hPow.{0, 0, 0} Real Int Real\n            (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) y\n            n))\n        (@LE.le.{0} Real Real.instLE (Real.log x)\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Int.cast.{0} Real Real.instIntCast n)\n            (Real.log y)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-3cbef3b685e076055979c57e0726c2f47513d89d8fc0e9d34bc3f1bb49f4933c","qualified_name":"Real.le_zpow_of_log_le","statement":"∀ {x y : Real} {n : Int},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n    @LE.le.{0} Real Real.instLE (Real.log x)\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Int.cast.{0} Real Real.instIntCast n)\n          (Real.log y)) →\n      @LE.le.{0} Real Real.instLE x\n        (@HPow.hPow.{0, 0, 0} Real Int Real\n          (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) y n)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-b8af591035138a9b81ae31eacbceebf55fff59b1b6368e20080428a3afe72874","qualified_name":"Real.log_le_rpow_div","statement":"∀ {x ε : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) ε →\n      @LE.le.{0} Real Real.instLE (Real.log x)\n        (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x ε) ε)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-f66f0eac4a27a983acd33cf5e71d1f184cc4d793ae6c10ce4cba8c3a3408e552","qualified_name":"Real.log_natCast_le_rpow_div","statement":"∀ (n : Nat) {ε : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) ε →\n    @LE.le.{0} Real Real.instLE (Real.log (@Nat.cast.{0} Real Real.instNatCast n))\n      (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n          (@Nat.cast.{0} Real Real.instNatCast n) ε)\n        ε)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-8d7d18f07e0f6262a3b65bbb71105c16c69ab67a6d96a78c18e97cfa7afc2322","qualified_name":"Real.log_rpow","statement":"∀ {x : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y : Real),\n      @Eq.{1} Real (Real.log (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y))\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) y (Real.log x))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-1942770f03418ed23867fa8172b02b260ff7a34ff47b88a98dc9b6c5294c2e4f","qualified_name":"Real.lt_log_of_pow_lt","statement":"∀ {x y : Real} {n : Nat},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT\n        (@HPow.hPow.{0, 0, 0} Real Nat Real\n          (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) x n)\n        y →\n      @LT.lt.{0} Real Real.instLT\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Nat.cast.{0} Real Real.instNatCast n)\n          (Real.log x))\n        (Real.log y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-87facbaf21df892db21815dd96e066b6c07be3d2cdfcf0935fd994d9f4945b71","qualified_name":"Real.lt_log_of_rpow_lt","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z) y →\n      @LT.lt.{0} Real Real.instLT (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) z (Real.log x))\n        (Real.log y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-b8320e9f691cb95332bde30377a461b130ebe5de597c4db2794c988497d268c2","qualified_name":"Real.lt_log_of_zpow_lt","statement":"∀ {x y : Real} {n : Int},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT\n        (@HPow.hPow.{0, 0, 0} Real Int Real\n          (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) x n)\n        y →\n      @LT.lt.{0} Real Real.instLT\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Int.cast.{0} Real Real.instIntCast n)\n          (Real.log x))\n        (Real.log y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-02efebf9be0787cef172accf0892caf0ca0ce4a00668a2bdf3cde831ab7ebea8","qualified_name":"Real.lt_pow_iff_log_lt","statement":"∀ {x y : Real} {n : Nat},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      Iff\n        (@LT.lt.{0} Real Real.instLT x\n          (@HPow.hPow.{0, 0, 0} Real Nat Real\n            (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) y n))\n        (@LT.lt.{0} Real Real.instLT (Real.log x)\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Nat.cast.{0} Real Real.instNatCast n)\n            (Real.log y)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-84920ec9617ed4b474e6202dc6b5de9b566424a7b82dd3be6fc7dafa07b714d9","qualified_name":"Real.lt_pow_of_log_lt","statement":"∀ {x y : Real} {n : Nat},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n    @LT.lt.{0} Real Real.instLT (Real.log x)\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Nat.cast.{0} Real Real.instNatCast n)\n          (Real.log y)) →\n      @LT.lt.{0} Real Real.instLT x\n        (@HPow.hPow.{0, 0, 0} Real Nat Real\n          (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) y n)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-79adb864c6a27d487193857e35c8407987bf6e09e60908a17bf611e3264deb76","qualified_name":"Real.lt_rpow_iff_log_lt","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      Iff\n        (@LT.lt.{0} Real Real.instLT x\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z))\n        (@LT.lt.{0} Real Real.instLT (Real.log x)\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) z (Real.log y)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-f04879f777d174397b89d47e06d891aaa6eabb64a79ac596fbc92acaacfa4475","qualified_name":"Real.lt_rpow_inv_iff_of_neg","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @LT.lt.{0} Real Real.instLT z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        Iff\n          (@LT.lt.{0} Real Real.instLT x\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y\n              (@Inv.inv.{0} Real Real.instInv z)))\n          (@LT.lt.{0} Real Real.instLT y\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-1d91193d020f6602c0d65049fa9cdc4b40fb740385567915c32eca86d916e08f","qualified_name":"Real.lt_rpow_inv_iff_of_pos","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) z →\n        Iff\n          (@LT.lt.{0} Real Real.instLT x\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y\n              (@Inv.inv.{0} Real Real.instInv z)))\n          (@LT.lt.{0} Real Real.instLT\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z) y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-90b6b9d7b6004bbc188cd628706027a035fa74f55f2323551fdb54569a51c24d","qualified_name":"Real.lt_rpow_of_log_lt","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n    @LT.lt.{0} Real Real.instLT (Real.log x)\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) z (Real.log y)) →\n      @LT.lt.{0} Real Real.instLT x (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-8eedc6da11ab1a2e3ce0c71baea30f60c28a5c8d26bdf508e7aad94cf046eeaa","qualified_name":"Real.lt_zpow_iff_log_lt","statement":"∀ {x y : Real} {n : Int},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      Iff\n        (@LT.lt.{0} Real Real.instLT x\n          (@HPow.hPow.{0, 0, 0} Real Int Real\n            (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) y\n            n))\n        (@LT.lt.{0} Real Real.instLT (Real.log x)\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Int.cast.{0} Real Real.instIntCast n)\n            (Real.log y)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-8d184d66d3b6e44c713f0461dac13177b85c37cc39f37da505941437be178dc4","qualified_name":"Real.lt_zpow_of_log_lt","statement":"∀ {x y : Real} {n : Int},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n    @LT.lt.{0} Real Real.instLT (Real.log x)\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Int.cast.{0} Real Real.instIntCast n)\n          (Real.log y)) →\n      @LT.lt.{0} Real Real.instLT x\n        (@HPow.hPow.{0, 0, 0} Real Int Real\n          (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) y n)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-66f77146f76f56d8a97f0486463f96bf4566fa82fe999b0905b010be50b744ba","qualified_name":"Real.monotoneOn_rpow_Ici_of_exponent_nonneg","statement":"∀ {r : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) r →\n    @MonotoneOn.{0, 0} Real Real Real.instPreorder Real.instPreorder\n      (fun x => @HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x r)\n      (@Set.Ici.{0} Real Real.instPreorder (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-5dfe5b9927092192203da1c2ab155fb24a3371ab4179d593f7133fe3c8b55d4f","qualified_name":"Real.monotone_rpow_of_base_ge_one","statement":"∀ {b : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) b →\n    @Monotone.{0, 0} Real Real Real.instPreorder Real.instPreorder fun x =>\n      @HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) b x"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-3ebc8d85be8f1e2de2c4d1fa0fe63db3d61dd3ce8f995b7744819c6987ee6ae4","qualified_name":"Real.mul_log_eq_log_iff","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) z →\n      Iff\n        (@Eq.{1} Real (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) y (Real.log x))\n          (Real.log z))\n        (@Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y) z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-cc7db7bc390b6085113ea9b54ba368e29504a46037d29668c60cee5debde899d","qualified_name":"Real.mul_rpow","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) x y) z)\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-43877a15ce879d549ab6a753d09717988fdf767a622ab1d3f295e51d40ff59a9","qualified_name":"Real.norm_rpow_of_nonneg","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Eq.{1} Real\n      (@Norm.norm.{0} Real Real.norm\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y))\n      (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) (@Norm.norm.{0} Real Real.norm x)\n        y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-1c39da42673340e907e30764c0c9b3472732bba5f8fd4938add4f30628bf5969","qualified_name":"Real.one_le_rpow","statement":"∀ {x z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x →\n    @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) z →\n      @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-d1bb892b05a44fd8f3aea183a4d7d68028fbc0f2d15bc178d220fe6e59178056","qualified_name":"Real.one_le_rpow_of_pos_of_le_one_of_nonpos","statement":"∀ {x z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @LE.le.{0} Real Real.instLE z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-302ffd694ee8b9aa5da7ecb62354b6b64213a579531f28760fc118aded8ad01e","qualified_name":"Real.one_lt_rpow","statement":"∀ {x z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) z →\n      @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-de321ecf67c93134f27a4c19729d60fd696013ebb441207980912acd6a837a87","qualified_name":"Real.one_lt_rpow_iff","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    Iff\n      (@LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y))\n      (Or\n        (And (@LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x)\n          (@LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y))\n        (And (@LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x)\n          (And (@LT.lt.{0} Real Real.instLT x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))\n            (@LT.lt.{0} Real Real.instLT y\n              (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))))))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-8bc5a34ca724321551c13ab6a1d6186c2b959facf210d772893d6e7ce3925efe","qualified_name":"Real.one_lt_rpow_iff_of_pos","statement":"∀ {x y : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    Iff\n      (@LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y))\n      (Or\n        (And (@LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x)\n          (@LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y))\n        (And (@LT.lt.{0} Real Real.instLT x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))\n          (@LT.lt.{0} Real Real.instLT y (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-860e84d99d63051f4716edf44e51b0c2ff616e07c5ceb8ff8e165de034b0ff70","qualified_name":"Real.one_lt_rpow_of_pos_of_lt_one_of_neg","statement":"∀ {x z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @LT.lt.{0} Real Real.instLT z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-ebddc058a1e4d57b8946d15c5d965503425baf63b2e0f79bb5ed965d2b531125","qualified_name":"Real.one_rpow","statement":"∀ (x : Real),\n  @Eq.{1} Real\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n      (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x)\n    (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-ccf428ebadf87429ebe8d1de14aeec8de3c174db39d4945d66a44209520650db","qualified_name":"Real.pi_rpow_one","statement":"∀ {α : Type u_1} (f : α → Real),\n  @Eq.{u_1 + 1} (α → Real)\n    (@HPow.hPow.{u_1, 0, u_1} (α → Real) Real (α → Real)\n      (@instHPow.{u_1, 0} (α → Real) Real (@Pi.instPow.{u_1, 0, 0} α Real (fun a => Real) fun i => Real.instPow)) f\n      (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))\n    f"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-d790dc4a2019f1ac8838348f4317941b3c9eb617d4bfb0ee65067f460b391bc0","qualified_name":"Real.pi_rpow_zero","statement":"∀ {α : Type u_1} (f : α → Real),\n  @Eq.{u_1 + 1} (α → Real)\n    (@HPow.hPow.{u_1, 0, u_1} (α → Real) Real (α → Real)\n      (@instHPow.{u_1, 0} (α → Real) Real (@Pi.instPow.{u_1, 0, 0} α Real (fun a => Real) fun i => Real.instPow)) f\n      (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n    (@OfNat.ofNat.{u_1} (α → Real) (nat_lit 1)\n      (@One.toOfNat1.{u_1} (α → Real) (@Pi.instOne.{u_1, 0} α (fun a => Real) fun i => Real.instOne)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-06c815a845bc784188f12fdd767b393ec2624ef9f0489cc9c44b0f7ff127a46c","qualified_name":"Real.pow_le_iff_le_log","statement":"∀ {x y : Real} {n : Nat},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      Iff\n        (@LE.le.{0} Real Real.instLE\n          (@HPow.hPow.{0, 0, 0} Real Nat Real\n            (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) x n)\n          y)\n        (@LE.le.{0} Real Real.instLE\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Nat.cast.{0} Real Real.instNatCast n)\n            (Real.log x))\n          (Real.log y))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-b0a5ee05bed706ff6db01d41ff8f79095195926469b414972787e787e15fb992","qualified_name":"Real.pow_le_of_le_log","statement":"∀ {x y : Real} {n : Nat},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n    @LE.le.{0} Real Real.instLE (Real.log x)\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Nat.cast.{0} Real Real.instNatCast n)\n          (Real.log y)) →\n      @LE.le.{0} Real Real.instLE x\n        (@HPow.hPow.{0, 0, 0} Real Nat Real\n          (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) y n)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-c338b43c337b10b1638be8178f49cecf9491bdabac1056eb48982bdeca84d9ec","qualified_name":"Real.pow_lt_iff_lt_log","statement":"∀ {x y : Real} {n : Nat},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      Iff\n        (@LT.lt.{0} Real Real.instLT\n          (@HPow.hPow.{0, 0, 0} Real Nat Real\n            (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) x n)\n          y)\n        (@LT.lt.{0} Real Real.instLT\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Nat.cast.{0} Real Real.instNatCast n)\n            (Real.log x))\n          (Real.log y))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-13427ca3d058e5b73846a8560781f389a396ba7eb5593e0bec28aa30e75af71a","qualified_name":"Real.pow_lt_of_lt_log","statement":"∀ {x y : Real} {n : Nat},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n    @LT.lt.{0} Real Real.instLT (Real.log x)\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Nat.cast.{0} Real Real.instNatCast n)\n          (Real.log y)) →\n      @LT.lt.{0} Real Real.instLT x\n        (@HPow.hPow.{0, 0, 0} Real Nat Real\n          (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) y n)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-1a39e1c574c30f3fc78100f8e50ae00d544b748b4af4077d7f84b88f567e763d","qualified_name":"Real.pow_rpow_inv_natCast","statement":"∀ {x : Real} {n : Nat},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n          (@HPow.hPow.{0, 0, 0} Real Nat Real\n            (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) x n)\n          (@Inv.inv.{0} Real Real.instInv (@Nat.cast.{0} Real Real.instNatCast n)))\n        x"},{"kind":"definition","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-d4f47a456aef565016039d955ab630e0ea7fe7ebc9497be27b66858572fad84a","qualified_name":"Real.rpow","statement":"Real → Real → Real"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-760ce2cb78e80d975964cbd0371ce915d59a26fc42b265d77ea7e834a9c21282","qualified_name":"Real.rpow_add","statement":"∀ {x : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y z : Real),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd) y z))\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-dd3272c80d133ae1deb05b68170d1fd164adb99c1c77cda5db5ac993fd0e2fb0","qualified_name":"Real.rpow_add'","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Real (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd) y z)\n        (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd) y z))\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-1d4717ec89f065a17171e3fb106b5f0877325f5bd94b0b3a6c8bc510c316ac00","qualified_name":"Real.rpow_add_intCast","statement":"∀ {x : Real},\n  @Ne.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n    ∀ (y : Real) (n : Int),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd) y\n            (@Int.cast.{0} Real Real.instIntCast n)))\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@HPow.hPow.{0, 0, 0} Real Int Real\n            (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) x\n            n))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-bb44ec68a7a7ad2855d52aa1749e6c5622163ad3026923c47679cd13324e9f1b","qualified_name":"Real.rpow_add_intCast'","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ {n : Int},\n      @Ne.{1} Real\n          (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd) y\n            (@Int.cast.{0} Real Real.instIntCast n))\n          (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        @Eq.{1} Real\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n            (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd) y\n              (@Int.cast.{0} Real Real.instIntCast n)))\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n            (@HPow.hPow.{0, 0, 0} Real Int Real\n              (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) x\n              n))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-bc3e3031a1a76dace5a5feb01b82f42c067adf141b5ccc8340547f387cdfef6b","qualified_name":"Real.rpow_add_natCast","statement":"∀ {x : Real},\n  @Ne.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n    ∀ (y : Real) (n : Nat),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd) y\n            (@Nat.cast.{0} Real Real.instNatCast n)))\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@HPow.hPow.{0, 0, 0} Real Nat Real\n            (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) x n))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-175eb8297428a4aa5a41c2ec5c9ab3f4b659899aa860b9823508a7aa5feb12c3","qualified_name":"Real.rpow_add_natCast'","statement":"∀ {x y : Real} {n : Nat},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Real\n        (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd) y\n          (@Nat.cast.{0} Real Real.instNatCast n))\n        (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd) y\n            (@Nat.cast.{0} Real Real.instNatCast n)))\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@HPow.hPow.{0, 0, 0} Real Nat Real\n            (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) x n))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-9dda899c15def4dc0651db4d14e0358b7f6f2b3baf5fbf04f1977abd7357efed","qualified_name":"Real.rpow_add_of_nonneg","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) z →\n        @Eq.{1} Real\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n            (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd) y z))\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-a2fbad9877762e3a326889cb1f6bdd270cec881c77e3657c20ec6c6ec3fdaf56","qualified_name":"Real.rpow_add_one","statement":"∀ {x : Real},\n  @Ne.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n    ∀ (y : Real),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd) y\n            (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))))\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y) x)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-8edc42c298c14a78f9afd37b3b3c189694bbe3969b390fba7f940c8bb62a06e1","qualified_name":"Real.rpow_add_one'","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Real\n        (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd) y\n          (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))\n        (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd) y\n            (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))))\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y) x)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-d2eee135fcc8827335461251f9294bff238ba2c5bd8b9c629544a243d250a547","qualified_name":"Real.rpow_def","statement":"∀ (x y : Real),\n  @Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n    (@HPow.hPow.{0, 0, 0} Complex Complex Complex (@instHPow.{0, 0} Complex Complex Complex.instPow) ↑x ↑y).re"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-3096d67f596cfe5949fea3dda1b85e225e6d4363feaf2c5e4a288685275aad90","qualified_name":"Real.rpow_def_of_neg","statement":"∀ {x : Real},\n  @LT.lt.{0} Real Real.instLT x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n    ∀ (y : Real),\n      @Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n          (Real.exp (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (Real.log x) y))\n          (Real.cos (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) y Real.pi)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-2e1ddc148444def4930a4ab6bd757fe1f60b6e51e57fee18355311367b3dab4c","qualified_name":"Real.rpow_def_of_nonneg","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y : Real),\n      @Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n        (@ite.{1} Real (@Eq.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n          (x.decidableEq (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n          (@ite.{1} Real (@Eq.{1} Real y (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n            (y.decidableEq (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n            (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))\n            (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n          (Real.exp (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (Real.log x) y)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-905c8e4868b54d471688f579016a9837d417a3c20941c7cbcae69f92aafd7cd3","qualified_name":"Real.rpow_def_of_nonpos","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n    ∀ (y : Real),\n      @Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n        (@ite.{1} Real (@Eq.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n          (x.decidableEq (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n          (@ite.{1} Real (@Eq.{1} Real y (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n            (y.decidableEq (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n            (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))\n            (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n            (Real.exp (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (Real.log x) y))\n            (Real.cos (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) y Real.pi))))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-de7bdaee05d962caacca9628f758b97afc5a1f90f540f2133bcba1bf02ce42b7","qualified_name":"Real.rpow_def_of_pos","statement":"∀ {x : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y : Real),\n      @Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n        (Real.exp (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (Real.log x) y))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-3d57a336185e76b1bceae6ad66b366c54455873177bb2ca4bbd1381dc043a66d","qualified_name":"Real.rpow_div_two_eq_sqrt","statement":"∀ {x : Real} (r : Real),\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Eq.{1} Real\n      (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n        (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid)) r\n          (@OfNat.ofNat.{0} Real (nat_lit 2) (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast ⋯))))\n      (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x.sqrt r)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-5947259d142fa9c9caa016139d07b9d3303ffe54fb776cac193e689edff8cc25","qualified_name":"Real.rpow_eq_pow","statement":"∀ (x y : Real),\n  @Eq.{1} Real (x.rpow y) (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-9eabaf92dc005ea3d85dd46cd3e8270768b1046727669a6b6231fceffad031ed","qualified_name":"Real.rpow_eq_zero","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Real y (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n      Iff\n        (@Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n        (@Eq.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-ddb7f38330dcf5a146276c209af48c0f1f537da2f1b74dbbaa0acf031fde1b27","qualified_name":"Real.rpow_eq_zero_iff_of_nonneg","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    Iff\n      (@Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n        (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n      (And (@Eq.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n        (@Ne.{1} Real y (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-db23e9bc7223f8ebae182953fa198c30243d7872ddb15379f1f8bc105b51aab0","qualified_name":"Real.rpow_intCast","statement":"∀ (x : Real) (n : Int),\n  @Eq.{1} Real\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n      (@Int.cast.{0} Real Real.instIntCast n))\n    (@HPow.hPow.{0, 0, 0} Real Int Real\n      (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) x n)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-6a8007b8b5b802e7ec43f882a82f2116f10872f92610ab441ee7592c6f78cfdc","qualified_name":"Real.rpow_intCast_mul","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (n : Int) (z : Real),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Int.cast.{0} Real Real.instIntCast n)\n            z))\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n          (@HPow.hPow.{0, 0, 0} Real Int Real\n            (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) x\n            n)\n          z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-980698f3967c305ba1abd60d4845b8b1769e5dc38fb6d8fe0a95b24cb3942041","qualified_name":"Real.rpow_inv_eq","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @Ne.{1} Real z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        Iff\n          (@Eq.{1} Real\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n              (@Inv.inv.{0} Real Real.instInv z))\n            y)\n          (@Eq.{1} Real x (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-4886f5a1c478fc12c7a1c6130bdd10a04ef33ab776dd3d89c3cb1bf8ecdcfbf7","qualified_name":"Real.rpow_inv_le_iff_of_neg","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @LT.lt.{0} Real Real.instLT z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        Iff\n          (@LE.le.{0} Real Real.instLE\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n              (@Inv.inv.{0} Real Real.instInv z))\n            y)\n          (@LE.le.{0} Real Real.instLE\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z) x)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-e1f6f72f2eb87e95b952859b959c3339d057c5c380eae46816ab73db00d2c207","qualified_name":"Real.rpow_inv_le_iff_of_pos","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) z →\n        Iff\n          (@LE.le.{0} Real Real.instLE\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n              (@Inv.inv.{0} Real Real.instInv z))\n            y)\n          (@LE.le.{0} Real Real.instLE x\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-6edf2f369a14d0be952d33e8a1cac228cae7d2ab96c619057ab74700da0f0636","qualified_name":"Real.rpow_inv_log","statement":"∀ {x : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@Inv.inv.{0} Real Real.instInv (Real.log x)))\n        (Real.exp (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-f2a3871d030fbbecd0f8740a657ecee1166bfe2d224e4afbc98885512bdf1a77","qualified_name":"Real.rpow_inv_log_le_exp_one","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n      (@Inv.inv.{0} Real Real.instInv (Real.log x)))\n    (Real.exp (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-94fc1714f833f4756c5fefcb4e547ac81dc448f27d1f6ff23b228828a2025b89","qualified_name":"Real.rpow_inv_lt_iff_of_neg","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @LT.lt.{0} Real Real.instLT z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        Iff\n          (@LT.lt.{0} Real Real.instLT\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n              (@Inv.inv.{0} Real Real.instInv z))\n            y)\n          (@LT.lt.{0} Real Real.instLT\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z) x)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-07bf27c0d2069fe73f2866aec0ca3f763ed68c0f6ed2e8f6914383cfb9df7772","qualified_name":"Real.rpow_inv_lt_iff_of_pos","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) z →\n        Iff\n          (@LT.lt.{0} Real Real.instLT\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n              (@Inv.inv.{0} Real Real.instInv z))\n            y)\n          (@LT.lt.{0} Real Real.instLT x\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-59d1c27016d58e8ded9c39bb89932a94572f3e3bb1ee087de0485742f273d8c0","qualified_name":"Real.rpow_inv_natCast_pow","statement":"∀ {x : Real} {n : Nat},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Nat Real\n          (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid)))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n            (@Inv.inv.{0} Real Real.instInv (@Nat.cast.{0} Real Real.instNatCast n)))\n          n)\n        x"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-df77ff5362cee901b2eb894fc0c4b1eeca0824a4b702fac597a997a48e86ddbf","qualified_name":"Real.rpow_inv_rpow","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Real y (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n            (@Inv.inv.{0} Real Real.instInv y))\n          y)\n        x"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-54b376b28e9225bd8f9c378729a94f95fde883f8398615809bdee8cd0c9ac5e3","qualified_name":"Real.rpow_le_iff_le_log","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      Iff\n        (@LE.le.{0} Real Real.instLE (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)\n          y)\n        (@LE.le.{0} Real Real.instLE\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) z (Real.log x)) (Real.log y))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-b57009dc5b1df1e02f22e3c5094df5894a0ed857f0840bf237ab709620b49ce4","qualified_name":"Real.rpow_le_of_le_log","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n    @LE.le.{0} Real Real.instLE (Real.log x)\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) z (Real.log y)) →\n      @LE.le.{0} Real Real.instLE x (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-c917aea9f520e7254f3a397fbeae5b8790d85d236ae3228f151fca2202e0295f","qualified_name":"Real.rpow_le_one","statement":"∀ {x z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) z →\n        @LE.le.{0} Real Real.instLE (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)\n          (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-d9d4d3ae2b396aec94b1509572f17f580033b87527c99741be6e2bb0dd127997","qualified_name":"Real.rpow_le_one_iff_of_pos","statement":"∀ {x y : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    Iff\n      (@LE.le.{0} Real Real.instLE (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n        (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))\n      (Or\n        (And (@LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x)\n          (@LE.le.{0} Real Real.instLE y (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))))\n        (And (@LE.le.{0} Real Real.instLE x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))\n          (@LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-cf04844230916a41e2d11fe2d094d2a2b1173fcd931e444dbcd9c6ef31d9de73","qualified_name":"Real.rpow_le_one_of_one_le_of_nonpos","statement":"∀ {x z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x →\n    @LE.le.{0} Real Real.instLE z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n      @LE.le.{0} Real Real.instLE (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)\n        (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-7a735621619d89ec5fe5d895b07b34431d93fc3d6b9fb4da5d27b52bf6f4d5ae","qualified_name":"Real.rpow_le_rpow","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE x y →\n      @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) z →\n        @LE.le.{0} Real Real.instLE (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-55d621ce8891f47fdc4da40669593709a5b4fc7ecfc7704cf1c11117a7f2dc93","qualified_name":"Real.rpow_le_rpow_iff","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) z →\n        Iff\n          (@LE.le.{0} Real Real.instLE\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z))\n          (@LE.le.{0} Real Real.instLE x y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-97aaadb4956555440a648b7b15b57f1ac9bb7659f41aa57e4fd734e58f6178dd","qualified_name":"Real.rpow_le_rpow_iff_of_neg","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @LT.lt.{0} Real Real.instLT z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        Iff\n          (@LE.le.{0} Real Real.instLE\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z))\n          (@LE.le.{0} Real Real.instLE y x)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-65cf34d661f4cf176f880893a108bc908138587a7c62bb0774ffd234a479bf4a","qualified_name":"Real.rpow_le_rpow_left_iff","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x →\n    Iff\n      (@LE.le.{0} Real Real.instLE (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z))\n      (@LE.le.{0} Real Real.instLE y z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-135b3de77292d47e760cd89e348afaf17825566a2baa541db9185f1bcc03619d","qualified_name":"Real.rpow_le_rpow_left_iff_of_base_lt_one","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      Iff\n        (@LE.le.{0} Real Real.instLE (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z))\n        (@LE.le.{0} Real Real.instLE z y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-36b5a35aef04e92ceaeb76004768a6a74e070e0843adee280c4d01ca9c92be2c","qualified_name":"Real.rpow_le_rpow_of_exponent_ge","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @LE.le.{0} Real Real.instLE z y →\n        @LE.le.{0} Real Real.instLE (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-ad49de81184f1e28f1c27cc057f1d7b7b3fec9d4ebde189b9c4d86f9c40cd5fb","qualified_name":"Real.rpow_le_rpow_of_exponent_ge'","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) z →\n        @LE.le.{0} Real Real.instLE z y →\n          @LE.le.{0} Real Real.instLE\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-36d3f4602643a5c917ae3b7c7f06c476304a94edeef4e555d301b7a12531889c","qualified_name":"Real.rpow_le_rpow_of_exponent_ge_of_imp","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @LE.le.{0} Real Real.instLE z y →\n        (@Eq.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n            @Eq.{1} Real y (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n              @Eq.{1} Real z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))) →\n          @LE.le.{0} Real Real.instLE\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-e143d803dee30ea4cb8270522bd9ba3613100f73acf5f77494b29b183f1a2e4d","qualified_name":"Real.rpow_le_rpow_of_exponent_le","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x →\n    @LE.le.{0} Real Real.instLE y z →\n      @LE.le.{0} Real Real.instLE (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-df04abc17998fed9990518f469cfa3eeed26911a916553e1a1dad90536207d0b","qualified_name":"Real.rpow_le_rpow_of_exponent_le_or_ge","statement":"∀ {x y z : Real},\n  Or\n      (And (@LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x)\n        (@LE.le.{0} Real Real.instLE y z))\n      (And (@LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x)\n        (And (@LE.le.{0} Real Real.instLE x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))\n          (@LE.le.{0} Real Real.instLE z y))) →\n    @LE.le.{0} Real Real.instLE (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n      (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-95491f3101f5cb0dd1db41159fbe724b69757f7eeca2e4c5839a858cc8f567cd","qualified_name":"Real.rpow_le_rpow_of_nonpos","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE x y →\n      @LE.le.{0} Real Real.instLE z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        @LE.le.{0} Real Real.instLE (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-2ee10886eca6af211342d017aa338ea0b5a53fd73b673b58f74e1019a5eb2a69","qualified_name":"Real.rpow_le_self_of_le_one","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) y →\n        @LE.le.{0} Real Real.instLE (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          x"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-41b56a444cc822e7d06faedfc70a2766887754f6255aab893cbcd9ae77f7e1ac","qualified_name":"Real.rpow_le_self_of_one_le","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x →\n    @LE.le.{0} Real Real.instLE y (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @LE.le.{0} Real Real.instLE (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y) x"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-0d82f4a73f0651fed83ff334458db9ed66a50229f014a0ff9bf440a4c5bfd9a9","qualified_name":"Real.rpow_left_inj","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @Ne.{1} Real z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        Iff\n          (@Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z))\n          (@Eq.{1} Real x y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-92dd0701032efc50df73a1f7c724dd5d76fb993ff8d7a9cc5c9fb5f43746463d","qualified_name":"Real.rpow_left_injOn","statement":"∀ {x : Real},\n  @Ne.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n    @Set.InjOn.{0, 0} Real Real\n      (fun y => @HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y x)\n      (@Set.ofPred.{0} Real fun y =>\n        @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-f87727e8d5da6afb696adcfe301ae128dc877ea793e3377d3b5bb0589442f65e","qualified_name":"Real.rpow_lt_iff_lt_log","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      Iff\n        (@LT.lt.{0} Real Real.instLT (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)\n          y)\n        (@LT.lt.{0} Real Real.instLT\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) z (Real.log x)) (Real.log y))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-e2cb77fa95bda774b53e47c9a57d74d4c0260446f0208bc80839d89464dd157e","qualified_name":"Real.rpow_lt_of_lt_log","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n    @LT.lt.{0} Real Real.instLT (Real.log x)\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) z (Real.log y)) →\n      @LT.lt.{0} Real Real.instLT x (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-20c4dbfaea2b99bcc75afa89789e3ed6c72b490dfb570b2074b450adafffa0f7","qualified_name":"Real.rpow_lt_one","statement":"∀ {x z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) z →\n        @LT.lt.{0} Real Real.instLT (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)\n          (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-1bbf975574c9218f9758bf7c8140876abac9c4c023b175d1e1e89cc747417a80","qualified_name":"Real.rpow_lt_one_iff","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    Iff\n      (@LT.lt.{0} Real Real.instLT (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n        (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))\n      (Or\n        (And (@Eq.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n          (@Ne.{1} Real y (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))))\n        (Or\n          (And (@LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x)\n            (@LT.lt.{0} Real Real.instLT y (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))))\n          (And (@LT.lt.{0} Real Real.instLT x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))\n            (@LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))\n              y))))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-a95fd12538d53969769c635cf43198fb23dde8a8cd24eaed8558fe60db5f92da","qualified_name":"Real.rpow_lt_one_iff'","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      Iff\n        (@LT.lt.{0} Real Real.instLT (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))\n        (@LT.lt.{0} Real Real.instLT x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-14d7a3c2523d53db58ee1e12b9ccf04c5205fa3182baef85377b5e78629c124c","qualified_name":"Real.rpow_lt_one_iff_of_pos","statement":"∀ {x y : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    Iff\n      (@LT.lt.{0} Real Real.instLT (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n        (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))\n      (Or\n        (And (@LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x)\n          (@LT.lt.{0} Real Real.instLT y (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))))\n        (And (@LT.lt.{0} Real Real.instLT x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))\n          (@LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-801e8fa3dd7ad4081ddd1421e60677f84973b33bbacefd54d3e4dfd9698883a4","qualified_name":"Real.rpow_lt_one_of_one_lt_of_neg","statement":"∀ {x z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x →\n    @LT.lt.{0} Real Real.instLT z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n      @LT.lt.{0} Real Real.instLT (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)\n        (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-131e32c16599f5257430d783e08bde3292d8f6eb8de3571b403dd51f7ff4d733","qualified_name":"Real.rpow_lt_rpow","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT x y →\n      @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) z →\n        @LT.lt.{0} Real Real.instLT (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-ee061bb621543ab52941a4a9016ff8630ec4b120c963bdf0105a1a5ee7cc7f87","qualified_name":"Real.rpow_lt_rpow_iff","statement":"∀ {x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) z →\n        Iff\n          (@LT.lt.{0} Real Real.instLT\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z))\n          (@LT.lt.{0} Real Real.instLT x y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-febec9ec0ae59b3abc19b94b2d9b08fe41bd4516741d12f6c54f2bc7a020942a","qualified_name":"Real.rpow_lt_rpow_iff_of_neg","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @LT.lt.{0} Real Real.instLT z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        Iff\n          (@LT.lt.{0} Real Real.instLT\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z))\n          (@LT.lt.{0} Real Real.instLT y x)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-4ae58ec7cf73c9210db97a9531303aeec3f2193d46a662a84175b53a2bcd5b8f","qualified_name":"Real.rpow_lt_rpow_left_iff","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x →\n    Iff\n      (@LT.lt.{0} Real Real.instLT (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z))\n      (@LT.lt.{0} Real Real.instLT y z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-e7ade0cd893dcce217c7af349b687dae5816b357a2c170cf0e2b7a71aedefd5d","qualified_name":"Real.rpow_lt_rpow_left_iff_of_base_lt_one","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      Iff\n        (@LT.lt.{0} Real Real.instLT (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z))\n        (@LT.lt.{0} Real Real.instLT z y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-c5153058a7bca0422b90f7af5d6b7664ce62a7f7c4f571bd7db71bdaab5ebb47","qualified_name":"Real.rpow_lt_rpow_of_exponent_gt","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @LT.lt.{0} Real Real.instLT z y →\n        @LT.lt.{0} Real Real.instLT (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-201de5eac847eacff96529d6481cc8d1de429ff183db67731acbf75b20691e82","qualified_name":"Real.rpow_lt_rpow_of_exponent_lt","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x →\n    @LT.lt.{0} Real Real.instLT y z →\n      @LT.lt.{0} Real Real.instLT (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-0101d171a17ebf6a690bdf9c350eb0c065c78794f4598485964e588dce4b5380","qualified_name":"Real.rpow_lt_rpow_of_neg","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT x y →\n      @LT.lt.{0} Real Real.instLT z (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        @LT.lt.{0} Real Real.instLT (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y z)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-078e66ebedea23c38c4a256f2d33749646b3228b170ce8904203a4c5c256f7dd","qualified_name":"Real.rpow_lt_self_of_lt_one","statement":"∀ {x y : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) y →\n        @LT.lt.{0} Real Real.instLT (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          x"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-8aed9f3272bd8fc0cd9ef97f3a53ab8237c14eb0a0a86ebee5f458ae497f2800","qualified_name":"Real.rpow_lt_self_of_one_lt","statement":"∀ {x y : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x →\n    @LT.lt.{0} Real Real.instLT y (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @LT.lt.{0} Real Real.instLT (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y) x"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-1a7356fcba5cb3bcda9e31ed03976962a89bc4aa962ba2475bc253c618c6ac3f","qualified_name":"Real.rpow_max","statement":"∀ {x y p : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) p →\n        @Eq.{1} Real\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n            (@Max.max.{0} Real Real.instMax x y) p)\n          (@Max.max.{0} Real Real.instMax\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x p)\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) y p))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-7a72619642622cedf8eb6cebd6cff6cd16670483cdc4df4deef03835bdb60d4d","qualified_name":"Real.rpow_mul","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y z : Real),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) y z))\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y) z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-631c9a9b88879511d8cec9b60839df5c48fd596e5201c5406705bfbbc70a01a5","qualified_name":"Real.rpow_mul_intCast","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y : Real) (n : Int),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) y\n            (@Int.cast.{0} Real Real.instIntCast n)))\n        (@HPow.hPow.{0, 0, 0} Real Int Real\n          (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid)))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y) n)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-d80ca1cd51b4e56020ee23c419449bf348de0cfa965478489f91d087656c0aec","qualified_name":"Real.rpow_mul_natCast","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y : Real) (n : Nat),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) y\n            (@Nat.cast.{0} Real Real.instNatCast n)))\n        (@HPow.hPow.{0, 0, 0} Real Nat Real\n          (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid)))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y) n)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-2b1af0f888dea2d4548fe5e5f9dd574826c5bb92fb63c19a67818d5b6defd770","qualified_name":"Real.rpow_natCast","statement":"∀ (x : Real) (n : Nat),\n  @Eq.{1} Real\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n      (@Nat.cast.{0} Real Real.instNatCast n))\n    (@HPow.hPow.{0, 0, 0} Real Nat Real\n      (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) x n)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-d0e62a4d278fca5495e966ce47438584c4c146762d120d231620dd16db13074a","qualified_name":"Real.rpow_natCast_mul","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (n : Nat) (z : Real),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Nat.cast.{0} Real Real.instNatCast n)\n            z))\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n          (@HPow.hPow.{0, 0, 0} Real Nat Real\n            (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) x n)\n          z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-f453e1efe50928f4cc3f8760ee10ba2b8a0d92fca87fb9dd7edcafd1ed29c38c","qualified_name":"Real.rpow_ne_zero","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Real y (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n      Iff\n        (@Ne.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n        (@Ne.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-6e2d20548bb6866bd99a60f2485981f04945df9aa8c4cb54f8a0d8ec5afc37ce","qualified_name":"Real.rpow_neg","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y : Real),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@Neg.neg.{0} Real Real.instNeg y))\n        (@Inv.inv.{0} Real Real.instInv\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-fd627e5b2cb15a3d3fa8e93d9cfc20d2824545c25d2560a74ff5962dcc59860e","qualified_name":"Real.rpow_neg_eq_inv_rpow","statement":"∀ (x y : Real),\n  @Eq.{1} Real\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x (@Neg.neg.{0} Real Real.instNeg y))\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) (@Inv.inv.{0} Real Real.instInv x) y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-1125442553a83cbdaf111d723e3d663d020071a5756a22f96d58ac967845cf8c","qualified_name":"Real.rpow_neg_natCast","statement":"∀ (x : Real) (n : Nat),\n  @Eq.{1} Real\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n      (@Neg.neg.{0} Real Real.instNeg (@Nat.cast.{0} Real Real.instNatCast n)))\n    (@HPow.hPow.{0, 0, 0} Real Int Real\n      (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) x\n      (@Neg.neg.{0} Int Int.instNegInt (@Nat.cast.{0} Int instNatCastInt n)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-8a9688724e0c93adcc8643ac65c5e81c39032921252f4d6a3afbb406bcb8835a","qualified_name":"Real.rpow_neg_ofNat","statement":"∀ (x : Real) (n : Nat) [inst : n.AtLeastTwo],\n  @Eq.{1} Real\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n      (@Neg.neg.{0} Real Real.instNeg\n        (@OfNat.ofNat.{0} Real n (@instOfNatAtLeastTwo.{0} Real n Real.instNatCast inst))))\n    (@HPow.hPow.{0, 0, 0} Real Int Real\n      (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) x\n      (@Neg.neg.{0} Int Int.instNegInt (@OfNat.ofNat.{0} Int n (@instOfNat n))))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-c537aaa6c4322b1b7b2c37220be1f4c3cc5e75974ba605b2ca49e34e96598dde","qualified_name":"Real.rpow_neg_one","statement":"∀ (x : Real),\n  @Eq.{1} Real\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n      (@Neg.neg.{0} Real Real.instNeg (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))))\n    (@Inv.inv.{0} Real Real.instInv x)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-f3b9abc804e6be0cfbe9f5807498ecc6e005754c481b0c811e15fa8a8058cb57","qualified_name":"Real.rpow_nonneg","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y : Real),\n      @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-6ddbe39df5e34e4117419b6feb17acc285549da03943e23de7e336db2bc44093","qualified_name":"Real.rpow_ofNat","statement":"∀ (x : Real) (n : Nat) [inst : n.AtLeastTwo],\n  @Eq.{1} Real\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n      (@OfNat.ofNat.{0} Real n (@instOfNatAtLeastTwo.{0} Real n Real.instNatCast inst)))\n    (@HPow.hPow.{0, 0, 0} Real Nat Real\n      (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) x\n      (@OfNat.ofNat.{0} Nat n (instOfNatNat n)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-2cf078a0c4aa79033c06172983f1adf0df2e68c9334c7e09bf2f130a99be4829","qualified_name":"Real.rpow_of_add_eq","statement":"∀ {w x y z : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Real w (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n      @Eq.{1} Real (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd) y z) w →\n        @Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x w)\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul)\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-d1f37671f7b41720290a65703e3bf116a0858ffabe8d00ab56924c6609d2ab02","qualified_name":"Real.rpow_one","statement":"∀ (x : Real),\n  @Eq.{1} Real\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n      (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))\n    x"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-665eaa36eb6ee410f1afb67eba6d4fdf5fd8b8e8695b79739f1bc23cdeff322c","qualified_name":"Real.rpow_one_add'","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Real\n        (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd)\n          (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) y)\n        (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HAdd.hAdd.{0, 0, 0} Real Real Real (@instHAdd.{0} Real Real.instAdd)\n            (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) y))\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) x\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-a2c2375d6ba71dfd2e6eae9dd8448fed151b935318886fef3c56c64e0e51ad66","qualified_name":"Real.rpow_one_sub'","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Real\n        (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub)\n          (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) y)\n        (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub)\n            (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) y))\n        (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid)) x\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-50d29f7fed37cb94d421b75e8e6375513be4d2ddaf42900d6c82a5fb0c702e30","qualified_name":"Real.rpow_pos_of_pos","statement":"∀ {x : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y : Real),\n      @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-eb74cf4076715df5fddacfda12f12f4592b9249e5306145d6c9ddffff929e077","qualified_name":"Real.rpow_pow_comm","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y : Real) (n : Nat),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Nat Real\n          (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid)))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y) n)\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n          (@HPow.hPow.{0, 0, 0} Real Nat Real\n            (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) x n)\n          y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-eee76348f3e76fe92f9c406ab653db41dcb259d99370f429de9aea88c52051cf","qualified_name":"Real.rpow_right_inj","statement":"∀ {x y z : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      Iff\n        (@Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z))\n        (@Eq.{1} Real y z)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-d14b7d2d9275c7679e8947bf4226cea30cba55d45207b61ae2200cd3b114308c","qualified_name":"Real.rpow_rpow_inv","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Real y (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@Inv.inv.{0} Real Real.instInv y))\n        x"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-803cfed90278b6ba34671449b78be307764a79701281a873956845f91b23024e","qualified_name":"Real.rpow_sub","statement":"∀ {x : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y z : Real),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub) y z))\n        (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-e35f3c8e103c7d69346220c0c1b0b2db7d94f43f35f08ed7cb738fe8043213ac","qualified_name":"Real.rpow_sub'","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ {y z : Real},\n      @Ne.{1} Real (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub) y z)\n          (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        @Eq.{1} Real\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n            (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub) y z))\n          (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x z))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-395e0599c6566e0543a028d60f3149573805269d3aa6bb75d32af7247309013d","qualified_name":"Real.rpow_sub_intCast","statement":"∀ {x : Real},\n  @Ne.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n    ∀ (y : Real) (n : Int),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub) y\n            (@Int.cast.{0} Real Real.instIntCast n)))\n        (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@HPow.hPow.{0, 0, 0} Real Int Real\n            (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) x\n            n))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-771e79395aa23bcc1b5179f9b43d1d1abdf7c7471fea612b399f7d4421a2756d","qualified_name":"Real.rpow_sub_intCast'","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ {n : Int},\n      @Ne.{1} Real\n          (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub) y\n            (@Int.cast.{0} Real Real.instIntCast n))\n          (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n        @Eq.{1} Real\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n            (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub) y\n              (@Int.cast.{0} Real Real.instIntCast n)))\n          (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n            (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n            (@HPow.hPow.{0, 0, 0} Real Int Real\n              (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) x\n              n))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-96a6ccf5ffec56796d3caa39f488d4ac7f57ce86c617f05b03d1112a2933c294","qualified_name":"Real.rpow_sub_natCast","statement":"∀ {x : Real},\n  @Ne.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n    ∀ (y : Real) (n : Nat),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub) y\n            (@Nat.cast.{0} Real Real.instNatCast n)))\n        (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@HPow.hPow.{0, 0, 0} Real Nat Real\n            (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) x n))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-0dca4908ce3db496fc7126c914c14bbbaae1fd3e3f5e2d4251676e280f4c4320","qualified_name":"Real.rpow_sub_natCast'","statement":"∀ {x y : Real} {n : Nat},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Real\n        (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub) y\n          (@Nat.cast.{0} Real Real.instNatCast n))\n        (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub) y\n            (@Nat.cast.{0} Real Real.instNatCast n)))\n        (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)\n          (@HPow.hPow.{0, 0, 0} Real Nat Real\n            (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) x n))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-291c96546657724a2e3e6ad65c1bfcc1aa6ccdd130d07c53bb14112f5e190f23","qualified_name":"Real.rpow_sub_one","statement":"∀ {x : Real},\n  @Ne.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n    ∀ (y : Real),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub) y\n            (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))))\n        (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y) x)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-69de0fa6989e537c9428ce1a20f57f459b637390c95c13460497f623ee1c2996","qualified_name":"Real.rpow_sub_one'","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @Ne.{1} Real\n        (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub) y\n          (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))\n        (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n          (@HSub.hSub.{0, 0, 0} Real Real Real (@instHSub.{0} Real Real.instSub) y\n            (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))))\n        (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y) x)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-ae2ff60599b7713b7323dbe750ba2f483ff998f8e9f9106ab86687a1b4bad58a","qualified_name":"Real.rpow_sum_of_nonneg","statement":"∀ {ι : Type u_1} {a : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) a →\n    ∀ {s : Finset.{u_1} ι} {f : ι → Real},\n      (∀ (x : ι),\n          @Membership.mem.{u_1, u_1} ι (Finset.{u_1} ι)\n              (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} ι) ι (@Finset.instSetLike.{u_1} ι)) s x →\n            @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))\n              (f x)) →\n        @Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) a (∑ x ∈ s, f x))\n          (∏ x ∈ s, @HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) a (f x))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-f336a4f47750af73077f9d19306307302381885101eb01f2d359853d94dad624","qualified_name":"Real.rpow_sum_of_pos","statement":"∀ {ι : Type u_1} {a : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) a →\n    ∀ (f : ι → Real) (s : Finset.{u_1} ι),\n      @Eq.{1} Real (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) a (∑ x ∈ s, f x))\n        (∏ x ∈ s, @HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) a (f x))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-461087b655bb18fbb2eca784b8b77e27d90df7495627d7bd4e563f2a92934e21","qualified_name":"Real.rpow_two","statement":"∀ (x : Real),\n  @Eq.{1} Real\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n      (@OfNat.ofNat.{0} Real (nat_lit 2) (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast ⋯)))\n    (@HPow.hPow.{0, 0, 0} Real Nat Real\n      (@instHPow.{0, 0} Real Nat (@NPow.toPow.{0} Real (@Monoid.toNPow.{0} Real Real.instMonoid))) x\n      (@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-fdb613e0a5b28aa91f67a0dfc9384343ebe0c15f0c6afc88caf6693703863ce9","qualified_name":"Real.rpow_zero","statement":"∀ (x : Real),\n  @Eq.{1} Real\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n      (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n    (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-e0128a1d88be18c9b3e83b8d3989a65f89ff1e08494f26fd4db089520b3b835c","qualified_name":"Real.rpow_zero_pos","statement":"∀ (x : Real),\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n      (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-96be8e65e74e2a38530ff7474ecc818493dbaed0e37014a7b4f189a60961238b","qualified_name":"Real.rpow_zpow_comm","statement":"∀ {x : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    ∀ (y : Real) (n : Int),\n      @Eq.{1} Real\n        (@HPow.hPow.{0, 0, 0} Real Int Real\n          (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid)))\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y) n)\n        (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n          (@HPow.hPow.{0, 0, 0} Real Int Real\n            (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) x\n            n)\n          y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-0cd28bffb06d522d37404a710c0c1d1c9c6c34c6b75d204870043ee5baca46e7","qualified_name":"Real.self_le_rpow_of_le_one","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LE.le.{0} Real Real.instLE x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @LE.le.{0} Real Real.instLE y (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n        @LE.le.{0} Real Real.instLE x\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-e7bbd8da5aff9e23621f7770c3edd8b3044ce67b6987ef80d0ddbd7827f61fb9","qualified_name":"Real.self_le_rpow_of_one_le","statement":"∀ {x y : Real},\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x →\n    @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) y →\n      @LE.le.{0} Real Real.instLE x (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-9ed487bac37da088e0ce11971362cb285247013512905f5b8574fb2f62876f65","qualified_name":"Real.self_lt_rpow_of_lt_one","statement":"∀ {x y : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT x (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @LT.lt.{0} Real Real.instLT y (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n        @LT.lt.{0} Real Real.instLT x\n          (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-89eb2e22afe0eda0290896bbdce6c288ad7f64501c9e77a33bfded5875fa7400","qualified_name":"Real.self_lt_rpow_of_one_lt","statement":"∀ {x y : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) y →\n      @LT.lt.{0} Real Real.instLT x (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x y)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-26e40789d2c635749a32dea304f6cb97d257cdaaab0653e4d00914d07f7bf105","qualified_name":"Real.sqrt_eq_rpow","statement":"∀ (x : Real),\n  @Eq.{1} Real x.sqrt\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x\n      (@HDiv.hDiv.{0, 0, 0} Real Real Real (@instHDiv.{0} Real (@DivInvMonoid.toDiv.{0} Real Real.instDivInvMonoid))\n        (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))\n        (@OfNat.ofNat.{0} Real (nat_lit 2) (@instOfNatAtLeastTwo.{0} Real (nat_lit 2) Real.instNatCast ⋯))))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-58ff402616b2282be993e5010575d148b4ae7ca1ed4492cd488258df4a28dc56","qualified_name":"Real.strictAntiOn_rpow_Ioi_of_exponent_neg","statement":"∀ {r : Real},\n  @LT.lt.{0} Real Real.instLT r (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n    @StrictAntiOn.{0, 0} Real Real Real.instPreorder Real.instPreorder\n      (fun x => @HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x r)\n      (@Set.Ioi.{0} Real Real.instPreorder (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-8c8974235a0fa16e05f081560275852c2c068dc2c185093ffcfe4ad2ab5c170e","qualified_name":"Real.strictAnti_rpow_of_base_lt_one","statement":"∀ {b : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) b →\n    @LT.lt.{0} Real Real.instLT b (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) →\n      @StrictAnti.{0, 0} Real Real Real.instPreorder Real.instPreorder fun x =>\n        @HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) b x"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-1e7a10fa3b93b42ceec1c373d7a39b5a8be51a36f47fc787fcfb5aa803a5f366","qualified_name":"Real.strictMonoOn_rpow_Ici_of_exponent_pos","statement":"∀ {r : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) r →\n    @StrictMonoOn.{0, 0} Real Real Real.instPreorder Real.instPreorder\n      (fun x => @HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) x r)\n      (@Set.Ici.{0} Real Real.instPreorder (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-84b587b37055d7ba8c6e153071abacf91d5d8cffda279d40275fdc149552f098","qualified_name":"Real.strictMono_rpow_of_base_gt_one","statement":"∀ {b : Real},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)) b →\n    @StrictMono.{0, 0} Real Real Real.instPreorder Real.instPreorder fun x =>\n      @HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow) b x"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-d67933e38768a77566633a9aa9f5aefab454694df8dd7cfea9b256a3b3d98ba4","qualified_name":"Real.zero_rpow","statement":"∀ {x : Real},\n  @Ne.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) →\n    @Eq.{1} Real\n      (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n        (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x)\n      (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-81b67761ee260ac52ed4cde3831d408fa230c84ad871c9f11e2d099c11d88faa","qualified_name":"Real.zero_rpow_eq_iff","statement":"∀ {x a : Real},\n  Iff\n    (@Eq.{1} Real\n      (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n        (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x)\n      a)\n    (Or\n      (And (@Ne.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n        (@Eq.{1} Real a (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))))\n      (And (@Eq.{1} Real x (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)))\n        (@Eq.{1} Real a (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne)))))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-f31a34c555e96448012094902d5a52381b669e8324935a392d7f47f50589de9d","qualified_name":"Real.zero_rpow_le_one","statement":"∀ (x : Real),\n  @LE.le.{0} Real Real.instLE\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n      (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x)\n    (@OfNat.ofNat.{0} Real (nat_lit 1) (@One.toOfNat1.{0} Real Real.instOne))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-0282595c3a0029197b00ff3fbb3942419aeb6d9374414d493da6759d5b485e30","qualified_name":"Real.zero_rpow_nonneg","statement":"∀ (x : Real),\n  @LE.le.{0} Real Real.instLE (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero))\n    (@HPow.hPow.{0, 0, 0} Real Real Real (@instHPow.{0, 0} Real Real Real.instPow)\n      (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-8568bf7ada7b7debec882f9d53bb4d7fd650c5269bf77286fb501ad81f3bba06","qualified_name":"Real.zpow_le_iff_le_log","statement":"∀ {x y : Real} {n : Int},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      Iff\n        (@LE.le.{0} Real Real.instLE\n          (@HPow.hPow.{0, 0, 0} Real Int Real\n            (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) x\n            n)\n          y)\n        (@LE.le.{0} Real Real.instLE\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Int.cast.{0} Real Real.instIntCast n)\n            (Real.log x))\n          (Real.log y))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-b3b8fbbad67c6530d766d06222c9c5285b6ba7c86130851f3b3823dd26a081d9","qualified_name":"Real.zpow_le_of_le_log","statement":"∀ {x y : Real} {n : Int},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n    @LE.le.{0} Real Real.instLE (Real.log x)\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Int.cast.{0} Real Real.instIntCast n)\n          (Real.log y)) →\n      @LE.le.{0} Real Real.instLE x\n        (@HPow.hPow.{0, 0, 0} Real Int Real\n          (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) y n)"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-d5afd99ec3ed01960e209a8c626b37ff736a5357d96fad10e050edaf3e506281","qualified_name":"Real.zpow_lt_iff_lt_log","statement":"∀ {x y : Real} {n : Int},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) x →\n    @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n      Iff\n        (@LT.lt.{0} Real Real.instLT\n          (@HPow.hPow.{0, 0, 0} Real Int Real\n            (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) x\n            n)\n          y)\n        (@LT.lt.{0} Real Real.instLT\n          (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Int.cast.{0} Real Real.instIntCast n)\n            (Real.log x))\n          (Real.log y))"},{"kind":"theorem","module":"Mathlib.Analysis.SpecialFunctions.Pow.Real","object_id":"object-6160e8eadfa91e5cc61ea6c0197b2557bdbc40eb3ad34eadfba2c357dfc4a1a0","qualified_name":"Real.zpow_lt_of_lt_log","statement":"∀ {x y : Real} {n : Int},\n  @LT.lt.{0} Real Real.instLT (@OfNat.ofNat.{0} Real (nat_lit 0) (@Zero.toOfNat0.{0} Real Real.instZero)) y →\n    @LT.lt.{0} Real Real.instLT (Real.log x)\n        (@HMul.hMul.{0, 0, 0} Real Real Real (@instHMul.{0} Real Real.instMul) (@Int.cast.{0} Real Real.instIntCast n)\n          (Real.log y)) →\n      @LT.lt.{0} Real Real.instLT x\n        (@HPow.hPow.{0, 0, 0} Real Int Real\n          (@instHPow.{0, 0} Real Int (@ZPow.toPow.{0} Real (@DivInvMonoid.toZPow.{0} Real Real.instDivInvMonoid))) y n)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-6a12631e72a2aa62999d7e589b2d5903f752c319b07c3f9fb3fd84d679740d25","qualified_name":"Semigroup.to_isAssociative","statement":"∀ {α : Type u_1} [inst : Semigroup.{u_1} α],\n  @Std.Associative.{u_1 + 1} α fun x1 x2 =>\n    @HMul.hMul.{u_1, u_1, u_1} α α α (@instHMul.{u_1} α (@Semigroup.toMul.{u_1} α inst)) x1 x2"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-79ee02adb8b2d53d5a5246508acd2a2a3dced180bfba0c61a8574a8bb3166389","qualified_name":"Semigroup.to_isLawfulIdentity","statement":"∀ {M : Type u_4} [inst : MulOneClass.{u_4} M],\n  @Std.LawfulIdentity.{u_4 + 1} M\n    (fun x1 x2 =>\n      @HMul.hMul.{u_4, u_4, u_4} M M M (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst)))\n        x1 x2)\n    (@OfNat.ofNat.{u_4} M (nat_lit 1)\n      (@One.toOfNat1.{u_4} M (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst))))"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-5851d84821ec9eebfa503868cd5e8dd5520d024ed804701f03e3343188e75058","qualified_name":"Set.Finite.isClosed_biUnion","statement":"∀ {X : Type u} {α : Type u_1} [inst : TopologicalSpace.{u} X] {s : Set.{u_1} α} {f : α → Set.{u} X},\n  @Set.Finite.{u_1} α s →\n    (∀ (i : α),\n        @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s i → @IsClosed.{u} X inst (f i)) →\n      @IsClosed.{u} X inst\n        (⋃ i, ⋃ (_ : @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s i), f i)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-90c89a1b7d3fabfd53e94785e4baeae027f812435b913819f44353cc8085bce4","qualified_name":"Set.Finite.isClosed_sUnion","statement":"∀ {X : Type u} [inst : TopologicalSpace.{u} X] {s : Set.{u} (Set.{u} X)},\n  @Set.Finite.{u} (Set.{u} X) s →\n    (∀ (t : Set.{u} X),\n        @Membership.mem.{u, u} (Set.{u} X) (Set.{u} (Set.{u} X)) (@Set.instMembership.{u} (Set.{u} X)) s t →\n          @IsClosed.{u} X inst t) →\n      @IsClosed.{u} X inst (@Set.sUnion.{u} X s)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-939fac3ded8832568e0ff7d2c7827ced606b20ba53090b741e89dcbc4c89bd06","qualified_name":"Set.Finite.isOpen_biInter","statement":"∀ {X : Type u} {α : Type u_1} [inst : TopologicalSpace.{u} X] {s : Set.{u_1} α} {f : α → Set.{u} X},\n  @Set.Finite.{u_1} α s →\n    (∀ (i : α),\n        @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s i → @IsOpen.{u} X inst (f i)) →\n      @IsOpen.{u} X inst\n        (⋂ i, ⋂ (_ : @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s i), f i)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-3169894c6998a924e46ddc9ee37f638c41b0770aa673bdcc735dc56c6a10f667","qualified_name":"Set.Finite.isOpen_sInter","statement":"∀ {X : Type u} [inst : TopologicalSpace.{u} X] {s : Set.{u} (Set.{u} X)},\n  @Set.Finite.{u} (Set.{u} X) s →\n    (∀ (t : Set.{u} X),\n        @Membership.mem.{u, u} (Set.{u} X) (Set.{u} (Set.{u} X)) (@Set.instMembership.{u} (Set.{u} X)) s t →\n          @IsOpen.{u} X inst t) →\n      @IsOpen.{u} X inst (@Set.sInter.{u} X s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-31f590339ee98ed0b922390c385e150f15edf402f73012ba35ad800ab9a3d9a7","qualified_name":"Set.MemUnion.elim","statement":"∀ {α : Type u} {x : α} {a b : Set.{u} α} {P : Prop},\n  @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) a b) x →\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) a x → P) →\n      (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) b x → P) → P"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-9bb01c57019e852d9dde80d5413d0194a48dd7cd0894d28fe959991105129cf2","qualified_name":"Set.Nonempty.coe_sort","statement":"∀ {α : Type u} {s : Set.{u} α}, @Set.Nonempty.{u} α s → Nonempty.{u + 1} (@Set.Elem.{u} α s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-01980f00d62e259072e776c899189610ae5f0fef37ba5407e8b5143cacdafec3","qualified_name":"Set.Nonempty.compl_ssubset_univ","statement":"∀ {α : Type u} {s : Set.{u} α},\n  @Set.Nonempty.{u} α s →\n    @LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      (@Compl.compl.{u} (Set.{u} α) (@Set.instCompl.{u} α) s) (@Set.univ.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-fd23ab3d0143056ce4cdf7f14ba143a2f858273950bd1bca7f7bf2224cbd6788","qualified_name":"Set.Nonempty.empty_ssubset","statement":"∀ {α : Type u} {s : Set.{u} α},\n  @Set.Nonempty.{u} α s →\n    @LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)) s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-ea48f18dbeeb1f8e6128d08d2c368dbb89528a503896600591c40c0fbf190459","qualified_name":"Set.Nonempty.eq_univ","statement":"∀ {α : Type u} {s : Set.{u} α} [Subsingleton.{u + 1} α],\n  @Set.Nonempty.{u} α s → @Eq.{u + 1} (Set.{u} α) s (@Set.univ.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-018efe7ec9b2f9152c17428ab439471e1cb82edf2a56f18612f288ba2d76a16a","qualified_name":"Set.Nonempty.exists_const","statement":"∀ {α : Type u} {s : Set.{u} α},\n  @Set.Nonempty.{u} α s →\n    ∀ {p : Prop}, Iff (∃ x, And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) p) p"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-43c9fedd9ea59e7764e00b6db6fe797d13bbc804449c5d78e73234e97929a678","qualified_name":"Set.Nonempty.forall_const","statement":"∀ {α : Type u} {s : Set.{u} α},\n  @Set.Nonempty.{u} α s →\n    ∀ {p : Prop}, Iff (∀ (x : α), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x → p) p"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-1bd4fd169055816eecda3d0832d8f504c063b23cedde36d8b601981fcc607bfa","qualified_name":"Set.Nonempty.inl","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @Set.Nonempty.{u} α s → @Set.Nonempty.{u} α (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-97d28b7a04a597aefef595f4ff44183c2b7ee320e7ff911d78fb4e44e01329c5","qualified_name":"Set.Nonempty.inr","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @Set.Nonempty.{u} α t → @Set.Nonempty.{u} α (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-3baeef0f49824b2bbc63789d8f341ed6801887c6e9c258a768aa282d50ecefd7","qualified_name":"Set.Nonempty.left","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @Set.Nonempty.{u} α (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) → @Set.Nonempty.{u} α s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-900441ca829782b3013d1eb43da6a54234cb0a14f100e410e38fe3d631669562","qualified_name":"Set.Nonempty.mono","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t → @Set.Nonempty.{u} α s → @Set.Nonempty.{u} α t"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-19eec9e55200fe3fc5ac9a95293b11c45378a9a9fa11159f0c1160def3e7e807","qualified_name":"Set.Nonempty.ne_empty","statement":"∀ {α : Type u} {s : Set.{u} α},\n  @Set.Nonempty.{u} α s →\n    @Ne.{u + 1} (Set.{u} α) s (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-d4afdafe3c1e7b7968d9c1fbffb777d7915cc2b960d00e5231bc335763488943","qualified_name":"Set.Nonempty.not_subset_empty","statement":"∀ {α : Type u} {s : Set.{u} α},\n  @Set.Nonempty.{u} α s →\n    Not\n      (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s\n        (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-7ff694b4acca59d86302a3e014dfe8c7c7a56d80c40f1193ddf6606f877355b5","qualified_name":"Set.Nonempty.of_diff","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @Set.Nonempty.{u} α (@SDiff.sdiff.{u} (Set.{u} α) (@Set.instSDiff.{u} α) s t) → @Set.Nonempty.{u} α s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-a9cf84741fd6502d4a7065423987afed55f4527b8a82cf7ab7062172ed9a5291","qualified_name":"Set.Nonempty.of_sdiff","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @Set.Nonempty.{u} α (@SDiff.sdiff.{u} (Set.{u} α) (@Set.instSDiff.{u} α) s t) → @Set.Nonempty.{u} α s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-57fc2eca9e0e8f619511b7311e5e02a3925e64eebdf4677965342aafa0300231","qualified_name":"Set.Nonempty.of_subtype","statement":"∀ {α : Type u} {s : Set.{u} α} [Nonempty.{u + 1} (@Set.Elem.{u} α s)], @Set.Nonempty.{u} α s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-fe050cb2311ab5d5ec7ea8dcbca6a008493f0f6c0e0135de2c39c635afddf8dc","qualified_name":"Set.Nonempty.right","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @Set.Nonempty.{u} α (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) → @Set.Nonempty.{u} α t"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-215f4392205e6a61859d8a0176e4272474a6d02838f770c0937d8a7ef5f50b88","qualified_name":"Set.Nonempty.some","statement":"{α : Type u} → {s : Set.{u} α} → @Set.Nonempty.{u} α s → α"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-502d8d11d597a568d360a8310e12a29f9693221fee6fbd22f823869e9f44ae57","qualified_name":"Set.Nonempty.some_mem","statement":"∀ {α : Type u} {s : Set.{u} α} (h : @Set.Nonempty.{u} α s),\n  @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s (@Set.Nonempty.some.{u} α s h)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-a84de09708996d1e010ca6669fcc529508006c1e6fac65eabfbe596dbee33d91","qualified_name":"Set.Nonempty.ssubset_univ","statement":"∀ {α : Type u} {s : Set.{u} α},\n  @Set.Nonempty.{u} α (@Compl.compl.{u} (Set.{u} α) (@Set.instCompl.{u} α) s) →\n    @LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s (@Set.univ.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-0b278b31f03573e962de0a20b650dd8e2e8d750118f0b00fd1ebd80e5598deeb","qualified_name":"Set.Nonempty.to_subtype","statement":"∀ {α : Type u} {s : Set.{u} α}, @Set.Nonempty.{u} α s → Nonempty.{u + 1} (@Set.Elem.{u} α s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-6db0cbe9b088caef27052730f3d60d598d8095b6954c1cd35bfad35de7ed2388","qualified_name":"Set.Nonempty.to_type","statement":"∀ {α : Type u} {s : Set.{u} α}, @Set.Nonempty.{u} α s → Nonempty.{u + 1} α"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-00dda796216f7541c1ebc52e7e0cc39e7adb63a7191939b995ade857b4dcf821","qualified_name":"Set.PiSetCoe.canLift","statement":"∀ (ι : Type u) (α : ι → Type v) [∀ (i : ι), Nonempty.{v + 1} (α i)] (s : Set.{u} ι),\n  CanLift.{max (u + 1) (v + 1), max (u + 1) (v + 1)}\n    ((i : @Set.Elem.{u} ι s) →\n      α (@Subtype.val.{u + 1} ι (fun x => @Membership.mem.{u, u} ι (Set.{u} ι) (@Set.instMembership.{u} ι) s x) i))\n    ((i : ι) → α i)\n    (fun f i =>\n      f (@Subtype.val.{u + 1} ι (fun x => @Membership.mem.{u, u} ι (Set.{u} ι) (@Set.instMembership.{u} ι) s x) i))\n    fun x => True"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-74ee727ddca370e23675e907ff711313ba17d71f87df261337842be80daca2f6","qualified_name":"Set.PiSetCoe.canLift'","statement":"∀ (ι : Type u) (α : Type v) [Nonempty.{v + 1} α] (s : Set.{u} ι),\n  CanLift.{max (u + 1) (v + 1), max (u + 1) (v + 1)} (@Set.Elem.{u} ι s → α) (ι → α)\n    (fun f i =>\n      f (@Subtype.val.{u + 1} ι (fun x => @Membership.mem.{u, u} ι (Set.{u} ι) (@Set.instMembership.{u} ι) s x) i))\n    fun x => True"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-967bd4d1b2f08757d6944f476ee879a7bf4712f4c73722eeddcbc78307382278","qualified_name":"Set.SeparatesPoints","statement":"{α : Type u_3} → {β : Type u_4} → Set.{max u_3 u_4} (α → β) → Prop"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-53d71820acc843e6042a287bcc8b75d049a8cb26e5cf1b09106541eb22326d9a","qualified_name":"Set.Subset.antisymm","statement":"∀ {α : Type u} {a b : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) a b →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) b a → @Eq.{u + 1} (Set.{u} α) a b"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-ef73d741427b07660ec0aa91681dbb45abb22cdb38d9737951f2f9117adb19d3","qualified_name":"Set.Subset.antisymm_iff","statement":"∀ {α : Type u} {a b : Set.{u} α},\n  Iff (@Eq.{u + 1} (Set.{u} α) a b)\n    (And (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) a b) (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) b a))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-ac24fed231c6e71322d3911deef288b2584dda09250bee5f2bb01e2ef29ef800","qualified_name":"Set.Subset.refl","statement":"∀ {α : Type u} (a : Set.{u} α), @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) a a"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-4973455f57fb8ecf0732ef75bc98834e02a9c14bba24f9e596d0e378232309f1","qualified_name":"Set.Subset.rfl","statement":"∀ {α : Type u} {s : Set.{u} α}, @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-244c60c981ca87b3ef48a9164076d5a04b434339851a2350295c97a388c9ae5f","qualified_name":"Set.Subset.trans","statement":"∀ {α : Type u} {a b c : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) a b →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) b c → @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) a c"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-3cf979d433bc446230658611d16848dbacb769151f54deb23e5de8b63ce7e759","qualified_name":"Set.bot_eq_empty","statement":"∀ {α : Type u},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Bot.bot.{u} (Set.{u} α)\n      (@OrderBot.toBot.{u} (Set.{u} α) (@Set.instLE.{u} α)\n        (@BoundedOrder.toOrderBot.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Set.instBoundedOrder.{u} α))))\n    (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f1b438dfec8cb5c27658f736b0ec3fc7d53f1130ba9e62c896aa73a0a56948c9","qualified_name":"Set.coe_eq_subtype","statement":"∀ {α : Type u} (s : Set.{u} α),\n  @Eq.{u + 2} (Type u) (@Set.Elem.{u} α s)\n    (@Subtype.{u + 1} α fun x => @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-e0ea554774159106ca47a4a785d11a5951ab84b66cf52ef0a73160c087c02050","qualified_name":"Set.coe_ofPred","statement":"∀ {α : Type u} (p : α → Prop),\n  @Eq.{u + 2} (Type u) (@Set.Elem.{u} α (@Set.ofPred.{u} α fun x => p x)) (@Subtype.{u + 1} α fun x => p x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-3e0ca5b3abbcaac9d3801a3b7c7ba03394a5ba5c33927fb4c1b03ac9520fd179","qualified_name":"Set.coe_setOf","statement":"∀ {α : Type u} (p : α → Prop),\n  @Eq.{u + 2} (Type u) (@Set.Elem.{u} α (@Set.ofPred.{u} α fun x => p x)) (@Subtype.{u + 1} α fun x => p x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-804310c80112181b84afac4751eefea6475f23227570341c4c8dc35ec98a9c11","qualified_name":"Set.compl_ssubset_univ","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff\n    (@LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      (@Compl.compl.{u} (Set.{u} α) (@Set.instCompl.{u} α) s) (@Set.univ.{u} α))\n    (@Set.Nonempty.{u} α s)"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-c6bdd7d67a9e0854c9d1f3bfbf62ae80047c2ab3ec8e15da66282a71611da46a","qualified_name":"Set.decidableCompl","statement":"{α : Type u} →\n  (s : Set.{u} α) →\n    (a : α) →\n      [Decidable (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s a)] →\n        Decidable\n          (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n            (@Compl.compl.{u} (Set.{u} α) (@Set.instCompl.{u} α) s) a)"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-f8afb36f22bbe10b2b8b15a1c13dc4426a5a07a25273cb45651b02415c2932ca","qualified_name":"Set.decidableEmptyset","statement":"{α : Type u} →\n  (a : α) →\n    Decidable\n      (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n        (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)) a)"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-c71869fee1fddc4fb2c37d6bb81d540312d5bf0ff8d9958abb3f23161ab11669","qualified_name":"Set.decidableEq","statement":"{α : Type u} → DecidableEq.{u + 1} (Set.{u} α)"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-ad9e2c0a940836138b61b9b69461c5b3831f1d61f3a384d3214596f7af5c792b","qualified_name":"Set.decidableInsert","statement":"{α : Type u} →\n  (s : Set.{u} α) →\n    (a b : α) →\n      [Decidable (@Eq.{u + 1} α a b)] →\n        [Decidable (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s a)] →\n          Decidable\n            (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n              (@Insert.insert.{u, u} α (Set.{u} α) (@Set.instInsert.{u} α) b s) a)"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-ff7c2089a4f7e0d0b2802eb5a37b7dca50aa45f82459fada88094091867959ee","qualified_name":"Set.decidableInter","statement":"{α : Type u} →\n  (s t : Set.{u} α) →\n    (a : α) →\n      [Decidable (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s a)] →\n        [Decidable (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t a)] →\n          Decidable\n            (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n              (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) a)"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-d2ac96627c568f128787447767b0c0b68cc89d371d95b7022676fd208e0998ee","qualified_name":"Set.decidableSdiff","statement":"{α : Type u} →\n  (s t : Set.{u} α) →\n    (a : α) →\n      [Decidable (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s a)] →\n        [Decidable (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t a)] →\n          Decidable\n            (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n              (@SDiff.sdiff.{u} (Set.{u} α) (@Set.instSDiff.{u} α) s t) a)"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-778d39d5ad9d143239d14fb896d5d3540d4dfdb1d8067874c0c0ba9a3abc92c5","qualified_name":"Set.decidableSetOf","statement":"{α : Type u} →\n  (a : α) →\n    (p : α → Prop) →\n      [Decidable (p a)] →\n        Decidable (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) (@Set.ofPred.{u} α fun a => p a) a)"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-5961d66915a2c9625a36c54e12ebebf24bf17237e99f8241c56ed45ef5e2d236","qualified_name":"Set.decidableUnion","statement":"{α : Type u} →\n  (s t : Set.{u} α) →\n    (a : α) →\n      [Decidable (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s a)] →\n        [Decidable (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t a)] →\n          Decidable\n            (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n              (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t) a)"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-a3ebd052564d4e110cc9909590d3892afa291e984cacc1d648db7cc22ec3a073","qualified_name":"Set.decidableUniv","statement":"{α : Type u} →\n  (a : α) → Decidable (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) (@Set.univ.{u} α) a)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b6cd4e34ff79b80cdf49839fb71361b90099855687b0654ed72d0cbbb5f89972","qualified_name":"Set.empty_def","statement":"∀ {α : Type u},\n  @Eq.{u + 1} (Set.{u} α) (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))\n    (@Set.ofPred.{u} α fun _x => False)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-3a5c027a127611386cc9be240e37da62ddddcdc91f1c670577915d8679fc60fb","qualified_name":"Set.empty_inter","statement":"∀ {α : Type u} (a : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α)\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)) a)\n    (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-cc530725dcfbd60b1fecf42e26d5f4e2329f063057b2698e73f8fa11facb0dee","qualified_name":"Set.empty_ne_univ","statement":"∀ {α : Type u} [Nonempty.{u + 1} α],\n  @Ne.{u + 1} (Set.{u} α) (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))\n    (@Set.univ.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-90c65b3cee4661f45ba5676b6033a6a8784f18137809e15a9b4847430763d47b","qualified_name":"Set.empty_ssubset","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff\n    (@LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)) s)\n    (@Set.Nonempty.{u} α s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-dc95c559aa0b3e1004a0bb6db32804eaaa1a3cf09795be0fc0d0dd6396bc7394","qualified_name":"Set.empty_subset","statement":"∀ {α : Type u} (s : Set.{u} α),\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α)\n    (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)) s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-85bd87ac68e01421384245f8db1e9b2d3899aae9256c3a577066565e6753f4e1","qualified_name":"Set.empty_union","statement":"∀ {α : Type u} (a : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α)\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)) a)\n    a"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-662eca8be9b702f7949fa21611bd27c8da50e26f990537a497db938fcf192f78","qualified_name":"Set.eq_empty_iff_forall_notMem","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff (@Eq.{u + 1} (Set.{u} α) s (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))\n    (∀ (x : α), x ∉ s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b9a0a7bc06bf853eed03206961880eee1d5908aba785f00b89000e7d2e4ff5ef","qualified_name":"Set.eq_empty_of_forall_notMem","statement":"∀ {α : Type u} {s : Set.{u} α},\n  (∀ (x : α), x ∉ s) →\n    @Eq.{u + 1} (Set.{u} α) s (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-0546107120f402484aaf8766070ddc882016e25d92c9f9327b71cbf2de8b506f","qualified_name":"Set.eq_empty_of_isEmpty","statement":"∀ {α : Type u} (s : Set.{u} α) [IsEmpty.{u + 1} (@Set.Elem.{u} α s)],\n  @Eq.{u + 1} (Set.{u} α) s (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f596e90a398ec42d30dc81b2ebe6a476bb889a1925544cac1a64ba86d2413176","qualified_name":"Set.eq_empty_of_subset_empty","statement":"∀ {α : Type u} {s : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)) →\n    @Eq.{u + 1} (Set.{u} α) s (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-ed12af34391e2ffb5110f08c27dfc0b6d7328a78a7ff21afb8906d30beb421e7","qualified_name":"Set.eq_empty_or_nonempty","statement":"∀ {α : Type u} (s : Set.{u} α),\n  Or (@Eq.{u + 1} (Set.{u} α) s (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))\n    (@Set.Nonempty.{u} α s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f1b40a36dabc62825f25093eb5e7c939e74c637c22ad25b27bde0bd0fe2616ae","qualified_name":"Set.eq_of_forall_subset_iff","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  (∀ (u : Set.{u} α),\n      Iff (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s u) (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t u)) →\n    @Eq.{u + 1} (Set.{u} α) s t"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-02ccd915258e66e1d5920c83aa515ef2cfd90005c7107ce16493827d853e0d82","qualified_name":"Set.eq_of_subset_of_subset","statement":"∀ {α : Type u} {a b : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) a b →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) b a → @Eq.{u + 1} (Set.{u} α) a b"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-8e35363f85c5664e0a705c5c99c885bfdd9e5ba56fb365371bc478c1585c0182","qualified_name":"Set.eq_or_ssubset_of_subset","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t →\n    Or (@Eq.{u + 1} (Set.{u} α) s t)\n      (@LT.lt.{u} (Set.{u} α)\n        (@Preorder.toLT.{u} (Set.{u} α)\n          (@PartialOrder.toPreorder.{u} (Set.{u} α)\n            (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n              (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n                (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n        s t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-535dfef8a0ecf754a58bc0beb996af26dd15857cf73594a540d02f7c91ff69b1","qualified_name":"Set.eq_univ_iff_forall","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff (@Eq.{u + 1} (Set.{u} α) s (@Set.univ.{u} α))\n    (∀ (x : α), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-12ce41133ec0c9e12617c7dbce604775636c49636cb0721db92a8aceee713522","qualified_name":"Set.eq_univ_of_forall","statement":"∀ {α : Type u} {s : Set.{u} α},\n  (∀ (x : α), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) →\n    @Eq.{u + 1} (Set.{u} α) s (@Set.univ.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-dd595fc2d530079a3f016f1332d5b484f005bf3469084dd2da42bcb762b76b20","qualified_name":"Set.eq_univ_of_subset","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t →\n    @Eq.{u + 1} (Set.{u} α) s (@Set.univ.{u} α) → @Eq.{u + 1} (Set.{u} α) t (@Set.univ.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-0bffcfdd8055b7a0ffa1bd6795532762201d69ce007789a6cf340a1a3711cd24","qualified_name":"Set.eq_univ_of_univ_subset","statement":"∀ {α : Type u} {s : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Set.univ.{u} α) s → @Eq.{u + 1} (Set.{u} α) s (@Set.univ.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-65b86a067ef2b494aa92adaa011f16e3defe67d398a0596baba4b96492e04142","qualified_name":"Set.exists_mem_const","statement":"∀ {α : Type u} {s : Set.{u} α} {p : Prop} [Nonempty.{u + 1} (@Set.Elem.{u} α s)],\n  Iff (∃ x, And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) p) p"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-1a4122818cf07c17d64a817584f2db6cd84ad2c3f61c675c6513bf6d34a618fc","qualified_name":"Set.exists_mem_empty","statement":"∀ {α : Type u} {p : α → Prop},\n  Iff\n    (∃ x,\n      And\n        (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n          (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)) x)\n        (p x))\n    False"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-89ec7273f7a80842d30b33e32d735f7ba607f85ed13a82de94b713e35bb268d8","qualified_name":"Set.exists_mem_inter","statement":"∀ {α : Type u} {s t : Set.{u} α} {p : α → Prop},\n  Iff\n    (∃ x,\n      And\n        (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n          (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) x)\n        (p x))\n    (∃ x,\n      And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x)\n        (And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x) (p x)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f3a477203dbc39a9bbb1abc4f3308eb9bb4431df9444f80644b176ef9b3bca80","qualified_name":"Set.exists_mem_ofPred","statement":"∀ {α : Type u} {p q : α → Prop},\n  Iff\n    (∃ x,\n      And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) (@Set.ofPred.{u} α fun x => q x) x) (p x))\n    (∃ x, And (q x) (p x))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-ed9a45fe7a2f69ed8bb0ffb667e85e8c5d85538b0c5aa440e6a4b6764984195c","qualified_name":"Set.exists_mem_of_nonempty","statement":"∀ (α : Type u_1) [Nonempty.{u_1 + 1} α],\n  ∃ x, @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) (@Set.univ.{u_1} α) x"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-9184e29a928a5c308d336c70ffc03f73944f3d99e201315d42eb699a4fc7fe22","qualified_name":"Set.exists_mem_union","statement":"∀ {α : Type u} {s t : Set.{u} α} {p : α → Prop},\n  Iff\n    (∃ x,\n      And\n        (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n          (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t) x)\n        (p x))\n    (Or (∃ x, And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (p x))\n      (∃ x, And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x) (p x)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-aea48a2563ece58a3794b72853d41546a5175311e46ec8b87426ec12ad3e4f71","qualified_name":"Set.exists_mem_univ","statement":"∀ {α : Type u} {p : α → Prop},\n  Iff (∃ x, And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) (@Set.univ.{u} α) x) (p x)) (∃ x, p x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-fecf6688945ba87afeedc5e50cc4be3fe4dc9b9956dac829bca26a8491786975","qualified_name":"Set.exists_mem_univ_of_nonempty","statement":"∀ (α : Type u_1) [Nonempty.{u_1 + 1} α],\n  ∃ x, @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) (@Set.univ.{u_1} α) x"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-9f3a6418c66adfe813330ae1f6e8d86bc0acce744d0c758c9481df290776a7ad","qualified_name":"Set.exists_of_ssubset","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s t →\n    ∃ x, And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x) (x ∉ s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-460a8681f5a2f0e4589a915f63666cc5ce9e7048ae9a870fb94a72a7e59f5e62","qualified_name":"Set.forall_mem_const","statement":"∀ {α : Type u} {s : Set.{u} α} {p : Prop} [Nonempty.{u + 1} (@Set.Elem.{u} α s)],\n  Iff (∀ (x : α), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x → p) p"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-2a261f05a55d0b07bcbb10e067871927f890875e802befeaaeb15c40d61e50ac","qualified_name":"Set.forall_mem_empty","statement":"∀ {α : Type u} {p : α → Prop},\n  Iff\n    (∀ (x : α),\n      @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n          (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)) x →\n        p x)\n    True"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-e28e69d14af25391d4a75fde862be1f2fd0121e5669c8fbb608661b1968cac00","qualified_name":"Set.forall_mem_inter","statement":"∀ {α : Type u} {s t : Set.{u} α} {p : α → Prop},\n  Iff\n    (∀ (x : α),\n      @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n          (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) x →\n        p x)\n    (∀ (x : α),\n      @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x →\n        @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x → p x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-3614717f712b2c84d1418d6436f28668aad6328e0cd8cb4485925f6eec337294","qualified_name":"Set.forall_mem_ofPred","statement":"∀ {α : Type u} {p q : α → Prop},\n  Iff\n    (∀ (x : α),\n      @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) (@Set.ofPred.{u} α fun x => q x) x → p x)\n    (∀ (x : α), q x → p x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-406bccd6afed9ff8d3fd595ce46f43134b1c6372891aef00a59172b57c66877f","qualified_name":"Set.forall_mem_union","statement":"∀ {α : Type u} {s t : Set.{u} α} {p : α → Prop},\n  Iff\n    (∀ (x : α),\n      @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n          (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t) x →\n        p x)\n    (And (∀ (x : α), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x → p x)\n      (∀ (x : α), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x → p x))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-1ee69a943a707c9bcceee451529001389c3105129c74c550201213038121acd5","qualified_name":"Set.forall_mem_univ","statement":"∀ {α : Type u} {p : α → Prop},\n  Iff (∀ (x : α), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) (@Set.univ.{u} α) x → p x)\n    (∀ (x : α), p x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-fdb099cc328c374463e421f962d0f1cc9f2c08bf6e0c0628611e0d3e0c48fa8a","qualified_name":"Set.inf_eq_inter","statement":"∀ {α : Type u},\n  @Eq.{u + 1} (Set.{u} α → Set.{u} α → Set.{u} α)\n    (fun x1 x2 =>\n      @Min.min.{u} (Set.{u} α)\n        (@SemilatticeInf.toMin.{u} (Set.{u} α)\n          (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n            (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))\n        x1 x2)\n    fun x1 x2 => @Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) x1 x2"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-1ca10306e01b85aef9cbf7b0f2cea3bffd7cc824589cf03535dc91c070eae921","qualified_name":"Set.instBoundedOrder","statement":"{α : Type u} → @BoundedOrder.{u} (Set.{u} α) (@Set.instLE.{u} α)"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-7998994e9892a669a90a7cb6325a25c7ffa906e09c133b8afa006d70ea7d1e05","qualified_name":"Set.instDistribLattice","statement":"{α : Type u} → DistribLattice.{u} (Set.{u} α)"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-e011e2a285609a16053c4c405933e2c5932f2080b4a0a80206217e771cb88ba7","qualified_name":"Set.instInhabited","statement":"{α : Type u} → Inhabited.{u + 1} (Set.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-17c4f6e4b6764a48f583e3ad8a1a02ed37ad1ceb698aaa05ce1555429fceb69f","qualified_name":"Set.instIsEmptyElemEmptyCollection","statement":"∀ (α : Type u),\n  IsEmpty.{u + 1} (@Set.Elem.{u} α (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-50b19eb36c867dfce47bbda99cbd5fbe9a3a559c0edecf85c43ce29ba66b24e3","qualified_name":"Set.instNonemptyTop","statement":"∀ {α : Type u} [Nonempty.{u + 1} α],\n  Nonempty.{u + 1}\n    (@Set.Elem.{u} α\n      (@Top.top.{u} (Set.{u} α)\n        (@OrderTop.toTop.{u} (Set.{u} α) (@Set.instLE.{u} α)\n          (@BoundedOrder.toOrderTop.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Set.instBoundedOrder.{u} α)))))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-69d34ed2523eb715c0b944993ebeaa7fa9609b7e45dafd91f8321bf394f98102","qualified_name":"Set.inter_assoc","statement":"∀ {α : Type u} (a b c : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) a b) c)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) a (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) b c))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-318173319397c6e7ba4aca7c920813bf819d913ef2fb01654e664c80486c8674","qualified_name":"Set.inter_comm","statement":"∀ {α : Type u} (a b : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) a b)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) b a)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-5cb8c0eae87905d38293b2b060180d21811672a6213b5087bc60b138e28d7064","qualified_name":"Set.inter_congr_left","statement":"∀ {α : Type u} {s t u : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u) t →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) u →\n      @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t)\n        (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-228f36ef2f0d16c4c1f5c827e75188caebdfb60f55256764df0948cedcb7afdf","qualified_name":"Set.inter_congr_right","statement":"∀ {α : Type u} {s t u : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) t u) s →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u) t →\n      @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u)\n        (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) t u)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-eb5141508cdb912fd273e9465792247a13e5e5ca8ca177ca1c2098cd22d7a5cf","qualified_name":"Set.inter_def","statement":"∀ {α : Type u} {s₁ s₂ : Set.{u} α},\n  @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s₁ s₂)\n    (@Set.ofPred.{u} α fun a =>\n      And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s₁ a)\n        (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s₂ a))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-6e20ef560386e3b082cd743b37651cd0700da31e40f092248da074a5b95c0e8a","qualified_name":"Set.inter_empty","statement":"∀ {α : Type u} (a : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) a\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))\n    (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-be0a0ca6a6efd0832437b99f6c90b31a0782b3d8c92d46a66f0b464c3684e082","qualified_name":"Set.inter_eq_inter_iff_left","statement":"∀ {α : Type u} {s t u : Set.{u} α},\n  Iff\n    (@Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t)\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u))\n    (And (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u) t)\n      (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) u))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-c16720cf8e209755b8a2e8f96d50429c3264b4a669dcb8390793452a538a5de3","qualified_name":"Set.inter_eq_inter_iff_right","statement":"∀ {α : Type u} {s t u : Set.{u} α},\n  Iff\n    (@Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u)\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) t u))\n    (And (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) t u) s)\n      (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u) t))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-055a59f7b7126b72a79ad57f18ac778bc1411afa4400565e0c1f1b691fb0bb86","qualified_name":"Set.inter_eq_inter_mono_left","statement":"∀ {α : Type u} {t u s₁ s₂ : Set.{u} α},\n  @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s₁ t)\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s₁ u) →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s₂ s₁ →\n      @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s₂ t)\n        (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s₂ u)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-c461bd1289c9b0fd9d9d423ad045a7d0b18fdbeffcb3a18d98d444f34db4074f","qualified_name":"Set.inter_eq_inter_mono_right","statement":"∀ {α : Type u} {s t u₁ u₂ : Set.{u} α},\n  @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u₁)\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) t u₁) →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) u₂ u₁ →\n      @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u₂)\n        (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) t u₂)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-19cebd46849050027b0eef3964c279e4b1046bce170cceca868f9bb0c01fbdd4","qualified_name":"Set.inter_eq_left","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff (@Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) s)\n    (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-9d4a36637d661c040c5ceeef22344e4fbc850b594697e503d4c4d54219173613","qualified_name":"Set.inter_eq_right","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff (@Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) t)\n    (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-1426d8abbe430984a7cbf6837c504d3350f40e7f74fea1e449b8b9eb30a94a64","qualified_name":"Set.inter_eq_self_of_subset_left","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t →\n    @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-dc71897d48a807b2a9dda869d1b732efca166ad850196301491453d81a89ee2b","qualified_name":"Set.inter_eq_self_of_subset_right","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t s →\n    @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) t"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-73dbeab7800a74dbe73e835453f8b74d3730e33c64d6bb030b9c8e4997fdce19","qualified_name":"Set.inter_inter_distrib_left","statement":"∀ {α : Type u} (s t u : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) t u))\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t)\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-991161821aa12bccf65aa853fd574ab2bfc88a23c027ec5dfc356baa6059fe0b","qualified_name":"Set.inter_inter_distrib_right","statement":"∀ {α : Type u} (s t u : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) u)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u)\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) t u))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-585b7121db7d045f552bff9e1595b7be099e98f5a1c8d673883820dce7c17ef0","qualified_name":"Set.inter_inter_inter_comm","statement":"∀ {α : Type u} (s t u v : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t)\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) u v))\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u)\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) t v))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-bb49923a8b7cb923538854f91fb8c5a75b2e75280256417500b0058fe56b635c","qualified_name":"Set.inter_isAssoc","statement":"∀ {α : Type u},\n  @Std.Associative.{u + 1} (Set.{u} α) fun x1 x2 => @Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) x1 x2"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-c8a727bbdc707a852d54d5a2c7fc204810a4ef12b8a0c079320bb3d94436c63b","qualified_name":"Set.inter_isComm","statement":"∀ {α : Type u},\n  @Std.Commutative.{u + 1} (Set.{u} α) fun x1 x2 => @Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) x1 x2"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-984a998303db8607471900525dc763df87f0074f90cb130c6cfb4b139faf8f96","qualified_name":"Set.inter_left_comm","statement":"∀ {α : Type u} (s₁ s₂ s₃ : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s₁ (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s₂ s₃))\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s₂ (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s₁ s₃))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-5709cb092b1e9da00cdc8679bfd972c6857ffda7721795f175601c187e4360ea","qualified_name":"Set.inter_nonempty","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff (@Set.Nonempty.{u} α (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t))\n    (∃ x,\n      And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x)\n        (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-3442bf452220d7fbcb5bea1acd63bb00bc6054f3ab2d87f6a6a9b25faeb9c2ce","qualified_name":"Set.inter_nonempty_iff_exists_left","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff (@Set.Nonempty.{u} α (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t))\n    (∃ x,\n      And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x)\n        (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-da3aebce8427fbf4fc5f8186be14392dc2091a5b254a06b50c2ae0ea66d15c70","qualified_name":"Set.inter_nonempty_iff_exists_right","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff (@Set.Nonempty.{u} α (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t))\n    (∃ x,\n      And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x)\n        (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-4bb2938e5f18fde5f44a327ca5cff2b96b70710240ff33499bb598b6fce25aba","qualified_name":"Set.inter_ofPred_eq_sep","statement":"∀ {α : Type u} (s : Set.{u} α) (p : α → Prop),\n  @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s (@Set.ofPred.{u} α fun a => p a))\n    (@Set.ofPred.{u} α fun a => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s a) (p a))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-cafb484154308605f01266cb6339c4917ab6291aa9d19a63b19a09ac282d0cb7","qualified_name":"Set.inter_right_comm","statement":"∀ {α : Type u} (s₁ s₂ s₃ : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s₁ s₂) s₃)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s₁ s₃) s₂)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-a68cce043c4e766cdeb34afda2efcd6a4f82db3aa3ee495c92fa04164626a159","qualified_name":"Set.inter_self","statement":"∀ {α : Type u} (a : Set.{u} α), @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) a a) a"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-16d446ac69a764de6bb2cf3131c06959b4eb2ff21c22ef0a02770f596c6c357a","qualified_name":"Set.inter_setOf_eq_sep","statement":"∀ {α : Type u} (s : Set.{u} α) (p : α → Prop),\n  @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s (@Set.ofPred.{u} α fun a => p a))\n    (@Set.ofPred.{u} α fun a => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s a) (p a))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-2415e8bc1a603810802fde54b12750b73ee35fb3aaf067decda6fe92b5560d9b","qualified_name":"Set.inter_ssubset_left_iff","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff\n    (@LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) s)\n    (Not (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-156922df8fa004047cd5e93d4c2457e54e23ec9a45afbf5dd739de37747c2fa7","qualified_name":"Set.inter_ssubset_right_iff","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff\n    (@LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) t)\n    (Not (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t s))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-a1ee2747f8a3458d75a856ae7ecc9c683f1a8230b88d12f6bfe143b743f2b23c","qualified_name":"Set.inter_subset_inter","statement":"∀ {α : Type u} {s₁ s₂ t₁ t₂ : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s₁ t₁ →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s₂ t₂ →\n      @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s₁ s₂)\n        (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) t₁ t₂)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-0d25ecc205fd3ab17732f945a855cb6ac1b1ce55009d355b790e1ef20ef5c3d0","qualified_name":"Set.inter_subset_inter_left","statement":"∀ {α : Type u} {s t : Set.{u} α} (u : Set.{u} α),\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u)\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) t u)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-648dfac656dcd325dc79d2d276d4289ec53d7e52df17d3c280cf1f367b007361","qualified_name":"Set.inter_subset_inter_right","statement":"∀ {α : Type u} {s t : Set.{u} α} (u : Set.{u} α),\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) u s)\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) u t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-e6f80fc3b5f9ed84345e7f0f4fb04b980e9f79788f79530e005d90200b31a211","qualified_name":"Set.inter_subset_left","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-2345054024fe9fc39cb9eca91cf33e463318d0eb9c85bc03a3edb4c742a49dcf","qualified_name":"Set.inter_subset_right","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) t"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-e5e30e3d23549de8efe365691876bff0566d5daf220ce05fd0e03f69f024942d","qualified_name":"Set.inter_union_distrib_left","statement":"∀ {α : Type u} (s t u : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) t u))\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t)\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-cb2586ceb5199f2aaebc53b8656297ea5d96177e67ec297b558b080861e3b30b","qualified_name":"Set.inter_union_distrib_right","statement":"∀ {α : Type u} (s t u : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t) u)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s u)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) t u))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-d1c1091ab258bf605cd70ff2bd6b1ff40260b9a226aa05a87f72bbdae972359d","qualified_name":"Set.inter_univ","statement":"∀ {α : Type u} (a : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) a (@Set.univ.{u} α)) a"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-1f902618b515443ed527b49ffa730d7ef35b1cbc30bab805b4f5c18affe697c0","qualified_name":"Set.isEmpty_coe_sort","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff (IsEmpty.{u + 1} (@Set.Elem.{u} α s))\n    (@Eq.{u + 1} (Set.{u} α) s (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-c2fb223d36ce27d0b35d0e75416bbbcf30cb0d9f1c16067969c95c9bac809601","qualified_name":"Set.le_eq_subset","statement":"∀ {α : Type u},\n  @Eq.{u + 1} (Set.{u} α → Set.{u} α → Prop) (fun x1 x2 => @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) x1 x2)\n    fun x1 x2 => @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) x1 x2"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-15e32324e46db06f97ba864e1236b27d180f05da2912fb3181679c99f92c4cea","qualified_name":"Set.le_iff_subset","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t) (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-4565433292226dab34554946f4a311b4815ee13f712296fb5473a5d4252f373f","qualified_name":"Set.left_eq_inter","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff (@Eq.{u + 1} (Set.{u} α) s (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t))\n    (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-c717f5179bc9c71cd84aa390870cc646835aa9843459cefd84811bb12edae81c","qualified_name":"Set.lt_eq_ssubset","statement":"∀ {α : Type u},\n  @Eq.{u + 1} (Set.{u} α → Set.{u} α → Prop)\n    (fun x1 x2 =>\n      @LT.lt.{u} (Set.{u} α)\n        (@Preorder.toLT.{u} (Set.{u} α)\n          (@PartialOrder.toPreorder.{u} (Set.{u} α)\n            (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n              (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n                (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n        x1 x2)\n    fun x1 x2 =>\n    @LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      x1 x2"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f709157ea14a18c181a4dafb38bc08728a1af3163ccf7b6fef0c013da0788695","qualified_name":"Set.lt_iff_ssubset","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff\n    (@LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s t)\n    (@LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-5b155ebb08063db12a8315cfafc03ee0ba075e01c1041ad0a9ebaafd6c9b2f3d","qualified_name":"Set.mem_bijective","statement":"∀ {α : Type u},\n  @Function.Bijective.{u + 1, u + 1} (Set.{u} α) (α → Prop)\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-c01f206f8f72b4ffce9f634526a68bca9df4ee7fb064f027412c3edcfb7f7f74","qualified_name":"Set.mem_dite_empty_left","statement":"∀ {α : Type u} (p : Prop) [inst : Decidable p] (t : Not p → Set.{u} α) (x : α),\n  Iff\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@dite.{u + 1} (Set.{u} α) p inst\n        (fun h => @EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)) fun h => t h)\n      x)\n    (∃ (h : Not p), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) (t h) x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-4031c8dd80fc725b63324579df1541e56998d40a8400eaf40ebbc089aa9cfee3","qualified_name":"Set.mem_dite_empty_right","statement":"∀ {α : Type u} (p : Prop) [inst : Decidable p] (t : p → Set.{u} α) (x : α),\n  Iff\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@dite.{u + 1} (Set.{u} α) p inst (fun h => t h) fun h =>\n        @EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))\n      x)\n    (∃ (h : p), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) (t h) x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-01c5c35c28cfc22f823614f29ed219ca1f3b60781cfba319428478d773ab78c1","qualified_name":"Set.mem_dite_univ_left","statement":"∀ {α : Type u} (p : Prop) [inst : Decidable p] (t : Not p → Set.{u} α) (x : α),\n  Iff\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@dite.{u + 1} (Set.{u} α) p inst (fun h => @Set.univ.{u} α) fun h => t h) x)\n    (∀ (h : Not p), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) (t h) x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-dd3d5c9be18a72edfb3646167c7b198b06c8907c9f7edf1c59c7300ec47f0e7f","qualified_name":"Set.mem_dite_univ_right","statement":"∀ {α : Type u} (p : Prop) [inst : Decidable p] (t : p → Set.{u} α) (x : α),\n  Iff\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@dite.{u + 1} (Set.{u} α) p inst (fun h => t h) fun h => @Set.univ.{u} α) x)\n    (∀ (h : p), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) (t h) x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b565e2b48f0228a3eb54c173be08bf13478107b0980c32c6a73f507a17a9211e","qualified_name":"Set.mem_empty_iff_false","statement":"∀ {α : Type u} (x : α),\n  Iff\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)) x)\n    False"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-038c7a178747db9847b2a9e6eb9e69b22badcb18747e1d845baa7f05af16bf99","qualified_name":"Set.mem_injective","statement":"∀ {α : Type u},\n  @Function.Injective.{u + 1, u + 1} (Set.{u} α) (α → Prop)\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-90673a72844fa3a11d12c32c48a0ef15a98669642d9f3adb2ae1cf9b36a8803b","qualified_name":"Set.mem_inter","statement":"∀ {α : Type u} {x : α} {a b : Set.{u} α},\n  @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) a x →\n    @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) b x →\n      @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n        (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) a b) x"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-817687b079a79b80d31b1b07f5cbbb81d3c3be2a135052d93b59508d27c062d1","qualified_name":"Set.mem_inter_iff","statement":"∀ {α : Type u} (x : α) (a b : Set.{u} α),\n  Iff\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) a b) x)\n    (And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) a x)\n      (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) b x))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-4c4dfdb69191573ffa2fb8703a0466df89dc34e60af01ceb4ae13cbf5d44f8f8","qualified_name":"Set.mem_ite_empty_left","statement":"∀ {α : Type u} (p : Prop) [inst : Decidable p] (t : Set.{u} α) (x : α),\n  Iff\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@ite.{u + 1} (Set.{u} α) p inst\n        (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)) t)\n      x)\n    (And (Not p) (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-82a9c748efbd1b786240c5c45c30509680081bc7dc7db80cd6ce906bb5c3ad80","qualified_name":"Set.mem_ite_empty_right","statement":"∀ {α : Type u} (p : Prop) [inst : Decidable p] (t : Set.{u} α) (x : α),\n  Iff\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@ite.{u + 1} (Set.{u} α) p inst t\n        (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))\n      x)\n    (And p (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-366c16377e34deaa23a549a86a4e8214731cdb2b7c96675a2f20e12289123838","qualified_name":"Set.mem_ite_univ_left","statement":"∀ {α : Type u} (p : Prop) [inst : Decidable p] (t : Set.{u} α) (x : α),\n  Iff\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@ite.{u + 1} (Set.{u} α) p inst (@Set.univ.{u} α) t) x)\n    (Not p → @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-52183f420d570f67eb1f256def8194b1f15ddae70aa8cc3a6f6eb0dcf40e6b05","qualified_name":"Set.mem_ite_univ_right","statement":"∀ {α : Type u} (p : Prop) [inst : Decidable p] (t : Set.{u} α) (x : α),\n  Iff\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@ite.{u + 1} (Set.{u} α) p inst t (@Set.univ.{u} α)) x)\n    (p → @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-29802e452b4585e96e9bdeb5de348376edb8821d6b5ecc6932f229f7b80fc98c","qualified_name":"Set.mem_of_eq_of_mem","statement":"∀ {α : Type u} {x y : α} {s : Set.{u} α},\n  @Eq.{u + 1} α x y →\n    @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s y →\n      @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-eee60dc27baa08471b764b81f76cb385ac519c73e8c1f0d410655f99f2f371ce","qualified_name":"Set.mem_of_mem_inter_left","statement":"∀ {α : Type u} {x : α} {a b : Set.{u} α},\n  @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) a b) x →\n    @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) a x"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-535b884aff2373dcdf330af7fa2c09f906fa4f1db1d2d4df12fc25d42c374831","qualified_name":"Set.mem_of_mem_inter_right","statement":"∀ {α : Type u} {x : α} {a b : Set.{u} α},\n  @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) a b) x →\n    @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) b x"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-8f892b8690097557266d5bc73c75019289453c85a5870a2b8d306baacd00bcf4","qualified_name":"Set.mem_of_mem_of_subset","statement":"∀ {α : Type u} {x : α} {s t : Set.{u} α},\n  @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t →\n      @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-65835cae6c90d1f34cacecd79609b9cb87e12e53ac4c39e8c587fe69f6786db1","qualified_name":"Set.mem_of_subset_of_mem","statement":"∀ {α : Type u} {s₁ s₂ : Set.{u} α} {a : α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s₁ s₂ →\n    @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s₁ a →\n      @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s₂ a"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-1b665bd980d5454b4dd9f49354bfb9f5e11875916da7b711b56f2a6ba321b073","qualified_name":"Set.mem_or_mem_of_mem_union","statement":"∀ {α : Type u} {x : α} {a b : Set.{u} α},\n  @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) a b) x →\n    Or (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) a x)\n      (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) b x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-671f73cc0b8c395c074dec0813f48ddcd92a7451c0bdea6aa056182c810265fa","qualified_name":"Set.mem_powerset","statement":"∀ {α : Type u} {x s : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) x s →\n    @Membership.mem.{u, u} (Set.{u} α) (Set.{u} (Set.{u} α)) (@Set.instMembership.{u} (Set.{u} α))\n      (@Set.powerset.{u} α s) x"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-2962610fe60785398fadb9ff57a60fcf540eca551112ab265e8a961e6425edce","qualified_name":"Set.mem_powerset_iff","statement":"∀ {α : Type u} (x s : Set.{u} α),\n  Iff\n    (@Membership.mem.{u, u} (Set.{u} α) (Set.{u} (Set.{u} α)) (@Set.instMembership.{u} (Set.{u} α))\n      (@Set.powerset.{u} α s) x)\n    (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) x s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-e841d49adfb86c4b719a61caa91480f3716bf26e2d9f8e512fba081baba4b6de","qualified_name":"Set.mem_sep","statement":"∀ {α : Type u} {s : Set.{u} α} {p : α → Prop} {x : α},\n  @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x →\n    p x →\n      @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n        (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (p x)) x"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-01e5e7209be42669a2cd8ed439e4c3c8fee5d83e45a25bd265d518508a5935cf","qualified_name":"Set.mem_sep_iff","statement":"∀ {α : Type u} {s : Set.{u} α} {p : α → Prop} {x : α},\n  Iff\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (p x)) x)\n    (And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (p x))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-92139466d790de05ec52eb57904b681e62ebf7667a28c87cf7985743fafe7c5e","qualified_name":"Set.mem_surjective","statement":"∀ {α : Type u},\n  @Function.Surjective.{u + 1, u + 1} (Set.{u} α) (α → Prop)\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-0c5d7f1ea80d2fcd9a725f7d4efcb3f3b6bda24621b8f1cbffb1271b1712895f","qualified_name":"Set.mem_union","statement":"∀ {α : Type u} (x : α) (a b : Set.{u} α),\n  Iff\n    (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) a b) x)\n    (Or (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) a x)\n      (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) b x))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f146b8695dfe5815df5f2718be7dd26ac88c54586120e2c14bda464f0bb412c2","qualified_name":"Set.mem_union_left","statement":"∀ {α : Type u} {x : α} {a : Set.{u} α} (b : Set.{u} α),\n  @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) a x →\n    @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) a b) x"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-8b9fadb0e2bfd1f16a3e2373082530eac5346374459ae8acaf2da06bf4c9bb1e","qualified_name":"Set.mem_union_right","statement":"∀ {α : Type u} {x : α} {b : Set.{u} α} (a : Set.{u} α),\n  @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) b x →\n    @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) a b) x"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-6b2ffb6e43fc4150d5055e187c58bb55835b394ba744246a46bb6256bbabf093","qualified_name":"Set.monotone_powerset","statement":"∀ {α : Type u},\n  @Monotone.{u, u} (Set.{u} α) (Set.{u} (Set.{u} α))\n    (@PartialOrder.toPreorder.{u} (Set.{u} α)\n      (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n        (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n          (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α)))))\n    (@PartialOrder.toPreorder.{u} (Set.{u} (Set.{u} α))\n      (@SemilatticeInf.toPartialOrder.{u} (Set.{u} (Set.{u} α))\n        (@Lattice.toSemilatticeInf.{u} (Set.{u} (Set.{u} α))\n          (@DistribLattice.toLattice.{u} (Set.{u} (Set.{u} α)) (@Set.instDistribLattice.{u} (Set.{u} α))))))\n    (@Set.powerset.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-1747f3442d899d5c269e05d945df32c31fd7f68b0a798cc316a97236eb304da2","qualified_name":"Set.ne_univ_iff_exists_notMem","statement":"∀ {α : Type u_1} (s : Set.{u_1} α), Iff (@Ne.{u_1 + 1} (Set.{u_1} α) s (@Set.univ.{u_1} α)) (∃ a, a ∉ s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f6fbbb7e05ae982de5e96fa33655e4213239f9ea126705d40df813073b602df0","qualified_name":"Set.nonempty_coe_sort","statement":"∀ {α : Type u} {s : Set.{u} α}, Iff (Nonempty.{u + 1} (@Set.Elem.{u} α s)) (@Set.Nonempty.{u} α s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-9b37a2fd6850d86dfa0186f1b46c2fe45eee56bc6b242cc45225ee5c5dc9e62d","qualified_name":"Set.nonempty_def","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff (@Set.Nonempty.{u} α s) (∃ x, @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-bf5a76cf1012894e1e640a907e89d2f601254b1221ddf0b42ba2b539b95ee322","qualified_name":"Set.nonempty_iff_empty_ne","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff (@Set.Nonempty.{u} α s)\n    (@Ne.{u + 1} (Set.{u} α) (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)) s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-29adef212fa6d52f5046978d774b09cfe872932bdd351b42c77e86169d526089","qualified_name":"Set.nonempty_iff_ne_empty","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff (@Set.Nonempty.{u} α s)\n    (@Ne.{u + 1} (Set.{u} α) s (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-4f44fb89e815de9134b7ed1944d90c1b25866ce505b20ae3aba95a7ae36596a3","qualified_name":"Set.nonempty_iff_ne_empty'","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff (Nonempty.{u + 1} (@Set.Elem.{u} α s))\n    (@Ne.{u + 1} (Set.{u} α) s (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-83455aa4c3ec6b3d2d403a8fde45effc0ae4c1a759b78c6695ad5cf767ce6409","qualified_name":"Set.nonempty_iff_univ_nonempty","statement":"∀ {α : Type u}, Iff (Nonempty.{u + 1} α) (@Set.Nonempty.{u} α (@Set.univ.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-8cdb6741256355fc10f430170a61e21b0c806befcd2edcb915c0b943fbed7c5c","qualified_name":"Set.nonempty_of_mem","statement":"∀ {α : Type u} {s : Set.{u} α} {x : α},\n  @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x → @Set.Nonempty.{u} α s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-7ee0cb93b0e7b130bf1722f84454bb6e75da1e8b1804b6f031a1e5aff4ab7580","qualified_name":"Set.nonempty_of_not_subset","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Not (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t) →\n    @Set.Nonempty.{u} α (@SDiff.sdiff.{u} (Set.{u} α) (@Set.instSDiff.{u} α) s t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-1bf04208b755635b4c7a82b341207324a3a08c2943f3b3c2c53e33993b82a035","qualified_name":"Set.nonempty_of_ssubset","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s t →\n    @Set.Nonempty.{u} α (@SDiff.sdiff.{u} (Set.{u} α) (@Set.instSDiff.{u} α) t s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-e9beb89976053ae788f5157e014a076d2f89bdd1242447dee3f818568c5ce447","qualified_name":"Set.nonempty_of_ssubset'","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s t →\n    @Set.Nonempty.{u} α t"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-61200652620e091cad936916f63a23f3f2fb1faa58a7dd05222815f160d868eb","qualified_name":"Set.nontrivial_of_nonempty","statement":"∀ {α : Type u} [Nonempty.{u + 1} α], Nontrivial.{u} (Set.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-471236d6f504df54bb46109e85b3f5de46bfa2f9d3ebf7cfc2aa2206808b9c6a","qualified_name":"Set.notMem_empty","statement":"∀ {α : Type u} (x : α), x ∉ @EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-56c8e8015fb3caa73f337ff1d9e4183ac1e1dc3dcf8c1fff0e1238e7a12f2689","qualified_name":"Set.notMem_subset","statement":"∀ {α : Type u} {a : α} {s t : Set.{u} α}, @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t → a ∉ t → a ∉ s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-4604e10e70116a4115a54b98166db901ab6196f067ff76f40908dc23339f5139","qualified_name":"Set.not_nonempty_empty","statement":"∀ {α : Type u},\n  Not (@Set.Nonempty.{u} α (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-a83f7a302fb50b802fd5cb7caad4197a1dc03fb6f25b7a53974b6c728d26ef52","qualified_name":"Set.not_nonempty_iff_eq_empty","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff (Not (@Set.Nonempty.{u} α s))\n    (@Eq.{u + 1} (Set.{u} α) s (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b52118d449639a119ffd520cd1a7aff9bab0091cb8dbad2096d3d3b08f4511b8","qualified_name":"Set.not_nonempty_iff_eq_empty'","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff (Not (Nonempty.{u + 1} (@Set.Elem.{u} α s)))\n    (@Eq.{u + 1} (Set.{u} α) s (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f03ad4fe7adf7830e35c33491bd8f2b327b0bb4efa0d8c43fa18fc875d0af2e5","qualified_name":"Set.not_notMem","statement":"∀ {α : Type u} {a : α} {s : Set.{u} α},\n  Iff (Not (a ∉ s)) (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s a)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-1e0bcec9f89c931e8d8668293a754acfdda6e84206030fec56a8cc9b5d01b1c9","qualified_name":"Set.not_subset","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff (Not (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t))\n    (∃ a, And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s a) (a ∉ t))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-d701940ed158faa6dbea52e396ea0319cd6d0ba90554085a652af8d25f0f796e","qualified_name":"Set.not_subset_iff_exists_mem_notMem","statement":"∀ {α : Type u_1} {s t : Set.{u_1} α},\n  Iff (Not (@LE.le.{u_1} (Set.{u_1} α) (@Set.instLE.{u_1} α) s t))\n    (∃ x, And (@Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s x) (x ∉ t))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f5999cff209522feadb08ac67c8419cac22840eaa70ff3b249e605d916a5272c","qualified_name":"Set.not_top_subset","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff\n    (Not\n      (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α)\n        (@Top.top.{u} (Set.{u} α)\n          (@OrderTop.toTop.{u} (Set.{u} α) (@Set.instLE.{u} α)\n            (@BoundedOrder.toOrderTop.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Set.instBoundedOrder.{u} α))))\n        s))\n    (∃ a, a ∉ s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-9e7b11f4068f1fdf5a54d81ed9e93969b1578c423d7cae0c10d7390a2435a048","qualified_name":"Set.not_univ_subset","statement":"∀ {α : Type u} {s : Set.{u} α}, Iff (Not (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Set.univ.{u} α) s)) (∃ a, a ∉ s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b04d1357b83f6c152ed639ac8b370dc33a3d98f88e48aa8cdc82b6cdb28d33b9","qualified_name":"Set.ofPred_and","statement":"∀ {α : Type u} {p q : α → Prop},\n  @Eq.{u + 1} (Set.{u} α) (@Set.ofPred.{u} α fun a => And (p a) (q a))\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Set.ofPred.{u} α fun a => p a)\n      (@Set.ofPred.{u} α fun a => q a))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-aea681312db5c7979967a82d7d99a38bd15464a1498464aed42b7fbe45a24577","qualified_name":"Set.ofPred_bijective","statement":"∀ {α : Type u}, @Function.Bijective.{u + 1, u + 1} (α → Prop) (Set.{u} α) (@Set.ofPred.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-ad5c791056c6f8100eef0bee355b7b9059427a44c2c45cc5d657dfea387870c6","qualified_name":"Set.ofPred_bot","statement":"∀ {α : Type u},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun _x =>\n      @Bot.bot.{0} Prop\n        (@OrderBot.toBot.{0} Prop «Prop».le (@BoundedOrder.toOrderBot.{0} Prop «Prop».le «Prop».instBoundedOrder)))\n    (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-9fea807cad9ba79bba989c5fb73f5d1377cd4543b09ab1ad6cf96ba628c1efe8","qualified_name":"Set.ofPred_false","statement":"∀ {α : Type u},\n  @Eq.{u + 1} (Set.{u} α) (@Set.ofPred.{u} α fun _a => False)\n    (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-e534df9d72d6bfa4ee291526f1ae5c8c78c7159457d984ae3c4d5d3e9cb350c6","qualified_name":"Set.ofPred_inj","statement":"∀ {α : Type u} {p q : α → Prop},\n  Iff (@Eq.{u + 1} (Set.{u} α) (@Set.ofPred.{u} α fun x => p x) (@Set.ofPred.{u} α fun x => q x))\n    (@Eq.{u + 1} (α → Prop) p q)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-eff0c694a26368fb005f61152b4a9395907673716b85bccebbdf1a7b5f54c2b0","qualified_name":"Set.ofPred_injective","statement":"∀ {α : Type u}, @Function.Injective.{u + 1, u + 1} (α → Prop) (Set.{u} α) (@Set.ofPred.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-c341089891bf8c52ae50b082d378e56832668a4dda6cce23ffd6c2d9e4179fdd","qualified_name":"Set.ofPred_inter_eq_sep","statement":"∀ {α : Type u} (p : α → Prop) (s : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Set.ofPred.{u} α fun a => p a) s)\n    (@Set.ofPred.{u} α fun a => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s a) (p a))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-63e2addf28767786f99e044155ff4ab30cbed20abfa469e25d7a71474fd16be5","qualified_name":"Set.ofPred_or","statement":"∀ {α : Type u} {p q : α → Prop},\n  @Eq.{u + 1} (Set.{u} α) (@Set.ofPred.{u} α fun a => Or (p a) (q a))\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) (@Set.ofPred.{u} α fun a => p a)\n      (@Set.ofPred.{u} α fun a => q a))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b21932dce922b5d9c97387c4046e8bb012e144435fc783da1c6c19f2b475e241","qualified_name":"Set.ofPred_subset","statement":"∀ {α : Type u} {p : α → Prop} {s : Set.{u} α},\n  Iff (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Set.ofPred.{u} α p) s)\n    (∀ (x : α), p x → @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-672f13ff4180092faa58a181cb5fb1655cbde56ee10bee7886630cc8cc2eb125","qualified_name":"Set.ofPred_subset_ofPred","statement":"∀ {α : Type u} {p q : α → Prop},\n  Iff (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Set.ofPred.{u} α fun a => p a) (@Set.ofPred.{u} α fun a => q a))\n    (∀ (a : α), p a → q a)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-a4631358d0f5e1edba35ec568d19881fa26654047d2d7a142b28d7385f2c1f87","qualified_name":"Set.ofPred_subset_ofPred_of_imp","statement":"∀ {α : Type u} {p q : α → Prop},\n  (∀ (a : α), p a → q a) →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Set.ofPred.{u} α fun a => p a) (@Set.ofPred.{u} α fun a => q a)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-25bb9c3e83fbc7ebe7b91104c4d5c5192d6fd692ac89cd80b99ba990426e3022","qualified_name":"Set.ofPred_top","statement":"∀ {α : Type u},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun _x =>\n      @Top.top.{0} Prop\n        (@OrderTop.toTop.{0} Prop «Prop».le (@BoundedOrder.toOrderTop.{0} Prop «Prop».le «Prop».instBoundedOrder)))\n    (@Set.univ.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-4deca721cd236230251ec7ee98e4be468657948e0be97a9702fbe8a8d383cc67","qualified_name":"Set.ofPred_true","statement":"∀ {α : Type u}, @Eq.{u + 1} (Set.{u} α) (@Set.ofPred.{u} α fun _x => True) (@Set.univ.{u} α)"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-4cbd3f1d026b8b7ecd3964113651afe464fbc2e27431404b7e153f01ea51d2cb","qualified_name":"Set.piecewise","statement":"{α : Type u} →\n  {β : α → Sort v} →\n    (s : Set.{u} α) →\n      ((i : α) → β i) →\n        ((i : α) → β i) →\n          [(j : α) → Decidable (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s j)] → (i : α) → β i"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-634d417fc345d283e3f1148c40e5734deb059fe7854fd3ac832555c40884b41b","qualified_name":"Set.powerset_empty","statement":"∀ {α : Type u},\n  @Eq.{u + 1} (Set.{u} (Set.{u} α))\n    (@Set.powerset.{u} α (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))\n    (@Singleton.singleton.{u, u} (Set.{u} α) (Set.{u} (Set.{u} α)) (@Set.instSingletonSet.{u} (Set.{u} α))\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-64a673a88e9d10d0ca00702ff9768f2cc3f56cb0fce5d2d4ca248a7ac997b291","qualified_name":"Set.powerset_inter","statement":"∀ {α : Type u} (s t : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} (Set.{u} α)) (@Set.powerset.{u} α (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t))\n    (@Inter.inter.{u} (Set.{u} (Set.{u} α)) (@Set.instInter.{u} (Set.{u} α)) (@Set.powerset.{u} α s)\n      (@Set.powerset.{u} α t))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-42c632fdae5ac75e4e72702410dffee91bfe2c695a4e5a9df333c91bd527ffa5","qualified_name":"Set.powerset_mono","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff (@LE.le.{u} (Set.{u} (Set.{u} α)) (@Set.instLE.{u} (Set.{u} α)) (@Set.powerset.{u} α s) (@Set.powerset.{u} α t))\n    (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b53623167886a00f7cad87dcfb4e5566e9a214a71906c19d09ce66c39b934dac","qualified_name":"Set.powerset_nonempty","statement":"∀ {α : Type u} {s : Set.{u} α}, @Set.Nonempty.{u} (Set.{u} α) (@Set.powerset.{u} α s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-e739075e577a97f97320681fa0d80aae34cb9db68e1edc82cb33076b817e10c0","qualified_name":"Set.powerset_univ","statement":"∀ {α : Type u}, @Eq.{u + 1} (Set.{u} (Set.{u} α)) (@Set.powerset.{u} α (@Set.univ.{u} α)) (@Set.univ.{u} (Set.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-cd9c1c20d32d5df7bb9b463a6a873a8784c9b5cce2ed82130dbbb759c27ebe82","qualified_name":"Set.right_eq_inter","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff (@Eq.{u + 1} (Set.{u} α) t (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t))\n    (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b66e8fab97716ef832e177f5bb27788a049fcfc80d025974ac45996c36f2990d","qualified_name":"Set.sep_and","statement":"∀ {α : Type u} {s : Set.{u} α} {p q : α → Prop},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun x =>\n      And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (And (p x) (q x)))\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α)\n      (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (p x))\n      (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (q x)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-7b48ff9b69d2afa5e09ac0cd3a1b447ce3875ca16a61a26e0ec90c08834ff13c","qualified_name":"Set.sep_empty","statement":"∀ {α : Type u} (p : α → Prop),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun x =>\n      And\n        (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α)\n          (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)) x)\n        (p x))\n    (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-ccfa02b2ab27a2e691a1bbc8667cb74ce3323906a6eae7c51577e555fca08a9c","qualified_name":"Set.sep_eq_empty_iff_mem_false","statement":"∀ {α : Type u} {s : Set.{u} α} {p : α → Prop},\n  Iff\n    (@Eq.{u + 1} (Set.{u} α)\n      (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (p x))\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))\n    (∀ (x : α), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x → Not (p x))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-1c445e57e9b6466fe6cba5e91fe6558b8f16fdfdb3fd27881c27fca1faa1108d","qualified_name":"Set.sep_eq_inter_sep","statement":"∀ {α : Type u_1} {s t : Set.{u_1} α} {p : α → Prop},\n  @LE.le.{u_1} (Set.{u_1} α) (@Set.instLE.{u_1} α) s t →\n    @Eq.{u_1 + 1} (Set.{u_1} α)\n      (@Set.ofPred.{u_1} α fun x =>\n        And (@Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s x) (p x))\n      (@Inter.inter.{u_1} (Set.{u_1} α) (@Set.instInter.{u_1} α) s\n        (@Set.ofPred.{u_1} α fun x =>\n          And (@Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) t x) (p x)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-e56648ed1a582198f0eea75673f9d4cdb3f127154d348d73f42e65b0badde155","qualified_name":"Set.sep_eq_of_subset","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t →\n    @Eq.{u + 1} (Set.{u} α)\n      (@Set.ofPred.{u} α fun x =>\n        And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x)\n          (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x))\n      s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-2d181a1eb8c0272c56f1afadd1fcdc0e6148332d55ddbbaf980c77656c9af36e","qualified_name":"Set.sep_eq_self_iff_mem_true","statement":"∀ {α : Type u} {s : Set.{u} α} {p : α → Prop},\n  Iff\n    (@Eq.{u + 1} (Set.{u} α)\n      (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (p x)) s)\n    (∀ (x : α), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x → p x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-82a83e0a06f436740f175b79920c03951cc6e31fe949a6f9b7871f7115a4b9d7","qualified_name":"Set.sep_ext_iff","statement":"∀ {α : Type u} {s : Set.{u} α} {p q : α → Prop},\n  Iff\n    (@Eq.{u + 1} (Set.{u} α)\n      (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (p x))\n      (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (q x)))\n    (∀ (x : α), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x → Iff (p x) (q x))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-4a28692a3d419f578e450272d35a7d675f6b4743eb39590460b850ae10e1a00b","qualified_name":"Set.sep_false","statement":"∀ {α : Type u} {s : Set.{u} α},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) False)\n    (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-bb4d01b7b10b5972ef6adaa6a07a7c01b9389d8ddeb42d733d47c01033ddc6a3","qualified_name":"Set.sep_inter","statement":"∀ {α : Type u} {s t : Set.{u} α} {p : α → Prop},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun x =>\n      And\n        (And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x)\n          (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x))\n        (p x))\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α)\n      (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (p x))\n      (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x) (p x)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-be450b6f3016cb075684d755f779fa265cd0d3be2d720f2f707df86bac4f6f1e","qualified_name":"Set.sep_mem_eq","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun x =>\n      And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x)\n        (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x))\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-3380f6d3fed52059033162baf22d819b2163b5df85cb8346ada449a76d90cc46","qualified_name":"Set.sep_ofPred","statement":"∀ {α : Type u} {p q : α → Prop},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun x =>\n      And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) (@Set.ofPred.{u} α fun y => p y) x) (q x))\n    (@Set.ofPred.{u} α fun x => And (p x) (q x))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-aa8bc767f8a60d73888a9196c52f2f9c5926c6018641b8732cfdd19bcb7c6b0d","qualified_name":"Set.sep_or","statement":"∀ {α : Type u} {s : Set.{u} α} {p q : α → Prop},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun x =>\n      And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (Or (p x) (q x)))\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α)\n      (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (p x))\n      (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (q x)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-ed1ddf4fa04e2cc5381af573413a934589200930f2f36d0bf4c1b5fc8abc5973","qualified_name":"Set.sep_setOf","statement":"∀ {α : Type u} {p q : α → Prop},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun x =>\n      And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) (@Set.ofPred.{u} α fun y => p y) x) (q x))\n    (@Set.ofPred.{u} α fun x => And (p x) (q x))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-6803f9ebac2c0aabb5316c61f6233a02b7984d7d9d96420d23a61bd48f1e6693","qualified_name":"Set.sep_subset","statement":"∀ {α : Type u} (s : Set.{u} α) (p : α → Prop),\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α)\n    (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (p x)) s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b0781a1ed10cec04ce293b7c495c03d5b47d38343c8af9afc47cccd9c313029f","qualified_name":"Set.sep_subset_ofPred","statement":"∀ {α : Type u} (s : Set.{u} α) (p : α → Prop),\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α)\n    (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (p x))\n    (@Set.ofPred.{u} α fun x => p x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-42673af481718442838a8dcfcbce8459fcea5845a8b1df5ea3f14011d989b590","qualified_name":"Set.sep_subset_setOf","statement":"∀ {α : Type u} (s : Set.{u} α) (p : α → Prop),\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α)\n    (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (p x))\n    (@Set.ofPred.{u} α fun x => p x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-046cc2ff514ec42325160dd87d0691dc20ea839ca51e54b09b470adfa3b9c932","qualified_name":"Set.sep_true","statement":"∀ {α : Type u} {s : Set.{u} α},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) True) s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-948884298979bf1b0156a9ef4aedf2b57efb55b462c5f8c8feb045ae79f807b1","qualified_name":"Set.sep_union","statement":"∀ {α : Type u} {s t : Set.{u} α} {p : α → Prop},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun x =>\n      And\n        (Or (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x)\n          (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x))\n        (p x))\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α)\n      (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) (p x))\n      (@Set.ofPred.{u} α fun x => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x) (p x)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-324f5dc9c814da1a7f1f788a36f2fd2e2e724491a9dfa5086586ab7c152bca3a","qualified_name":"Set.sep_univ","statement":"∀ {α : Type u} {p : α → Prop},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun x =>\n      And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) (@Set.univ.{u} α) x) (p x))\n    (@Set.ofPred.{u} α fun x => p x)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-a4b9d67136eab58db904fda8bca9ac649efb3297278b11ffb459ba1f6de20ace","qualified_name":"Set.separatesPoints_mono","statement":"∀ {α : Type u_3} {β : Type u_4} {A B : Set.{max u_3 u_4} (α → β)},\n  @LE.le.{max u_3 u_4} (Set.{max u_3 u_4} (α → β)) (@Set.instLE.{max u_3 u_4} (α → β)) A B →\n    @Set.SeparatesPoints.{u_3, u_4} α β A → @Set.SeparatesPoints.{u_3, u_4} α β B"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-47340b263079c2aac97a74f4200db0b72f1fcefdadad6870cbe20100b9b5480b","qualified_name":"Set.setOf_and","statement":"∀ {α : Type u} {p q : α → Prop},\n  @Eq.{u + 1} (Set.{u} α) (@Set.ofPred.{u} α fun a => And (p a) (q a))\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Set.ofPred.{u} α fun a => p a)\n      (@Set.ofPred.{u} α fun a => q a))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-8641498c61a89f45104e3426296f24c25bc7c06b7dbb183f2adab362a11456fd","qualified_name":"Set.setOf_bijective","statement":"∀ {α : Type u}, @Function.Bijective.{u + 1, u + 1} (α → Prop) (Set.{u} α) (@Set.ofPred.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-1b088019d356e8ae5c07694040e07b5ad8f5209ff0d01afc55c8a857d6ab50a1","qualified_name":"Set.setOf_bot","statement":"∀ {α : Type u},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun _x =>\n      @Bot.bot.{0} Prop\n        (@OrderBot.toBot.{0} Prop «Prop».le (@BoundedOrder.toOrderBot.{0} Prop «Prop».le «Prop».instBoundedOrder)))\n    (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-1d2a993cff8db470c079d7bf2300ec35bfba54721b1c52bd383eaac7dfed112b","qualified_name":"Set.setOf_false","statement":"∀ {α : Type u},\n  @Eq.{u + 1} (Set.{u} α) (@Set.ofPred.{u} α fun _a => False)\n    (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-95cd8460598fe34c9509070db0a923e998c7d284137ab04857ca41a9e653a56a","qualified_name":"Set.setOf_inj","statement":"∀ {α : Type u} {p q : α → Prop},\n  Iff (@Eq.{u + 1} (Set.{u} α) (@Set.ofPred.{u} α fun x => p x) (@Set.ofPred.{u} α fun x => q x))\n    (@Eq.{u + 1} (α → Prop) p q)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-feff4d0e5b6bf10bc585b19680fc749f3c25ccd529ec43c92d01a35c0d7f49d6","qualified_name":"Set.setOf_injective","statement":"∀ {α : Type u}, @Function.Injective.{u + 1, u + 1} (α → Prop) (Set.{u} α) (@Set.ofPred.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-d00be7fa9a69a9e2cffa311acbbe8d8ff915ebfcaefb864198bd5032e5bf7dae","qualified_name":"Set.setOf_inter_eq_sep","statement":"∀ {α : Type u} (p : α → Prop) (s : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Set.ofPred.{u} α fun a => p a) s)\n    (@Set.ofPred.{u} α fun a => And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s a) (p a))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-e5a38d5154bc0658019cc7d519c5001277d948d96369cffa16a0a1464a58be30","qualified_name":"Set.setOf_or","statement":"∀ {α : Type u} {p q : α → Prop},\n  @Eq.{u + 1} (Set.{u} α) (@Set.ofPred.{u} α fun a => Or (p a) (q a))\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) (@Set.ofPred.{u} α fun a => p a)\n      (@Set.ofPred.{u} α fun a => q a))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b5dafbb1328d4a17f25c3924dd9fbaf651383618a9e5e83f63d1fe2fafa9b84d","qualified_name":"Set.setOf_subset","statement":"∀ {α : Type u} {p : α → Prop} {s : Set.{u} α},\n  Iff (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Set.ofPred.{u} α p) s)\n    (∀ (x : α), p x → @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-740a59e06a5cb52dbd624eb8cec9385265bff179fc0c17f98d434e1d749887e3","qualified_name":"Set.setOf_subset_setOf","statement":"∀ {α : Type u} {p q : α → Prop},\n  Iff (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Set.ofPred.{u} α fun a => p a) (@Set.ofPred.{u} α fun a => q a))\n    (∀ (a : α), p a → q a)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b51c533fe2bb0abb1002d6b353b24332f5b3ac42e77534200510cdd9413c2ab9","qualified_name":"Set.setOf_subset_setOf_of_imp","statement":"∀ {α : Type u} {p q : α → Prop},\n  (∀ (a : α), p a → q a) →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Set.ofPred.{u} α fun a => p a) (@Set.ofPred.{u} α fun a => q a)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f5ea7c5384a8827b015071d0c39880848a9adc8703fda904c2951599dd621d2c","qualified_name":"Set.setOf_top","statement":"∀ {α : Type u},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Set.ofPred.{u} α fun _x =>\n      @Top.top.{0} Prop\n        (@OrderTop.toTop.{0} Prop «Prop».le (@BoundedOrder.toOrderTop.{0} Prop «Prop».le «Prop».instBoundedOrder)))\n    (@Set.univ.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f982d753408ffc8373e8b2dfb12ce766df66bf39b5ed5b356f4f606325534a82","qualified_name":"Set.setOf_true","statement":"∀ {α : Type u}, @Eq.{u + 1} (Set.{u} α) (@Set.ofPred.{u} α fun _x => True) (@Set.univ.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b36357ae5ce31fe2c4569cfff9a5b1fdb840184a85ab2a0d695e30522aad6cf4","qualified_name":"Set.ssubset_def","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @Eq.{1} Prop\n    (@LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s t)\n    (And (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t) (Not (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t s)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b27581e8250d76ccfd44a2e9a99fc8d7077d4797749ef564b6f038e490288151","qualified_name":"Set.ssubset_iff_exists","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff\n    (@LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s t)\n    (And (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t)\n      (∃ x, And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x) (x ∉ s)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-743e57aaf74d0984ecaa53a735e094b739608220bf39dee7f8d14294c3671caa","qualified_name":"Set.ssubset_iff_of_subset","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t →\n    Iff\n      (@LT.lt.{u} (Set.{u} α)\n        (@Preorder.toLT.{u} (Set.{u} α)\n          (@PartialOrder.toPreorder.{u} (Set.{u} α)\n            (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n              (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n                (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n        s t)\n      (∃ x, And (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x) (x ∉ s))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-5373ef4119b8ad58513b290835c10e0960063597e45547ecc9128f8f0bfc8bd2","qualified_name":"Set.ssubset_iff_subset_ne","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff\n    (@LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s t)\n    (And (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t) (@Ne.{u + 1} (Set.{u} α) s t))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-5260bc31701d9d4c666e0bba6a4083aeafa09ab57f39add2372918da043f0940","qualified_name":"Set.ssubset_of_ssubset_of_subset","statement":"∀ {α : Type u} {s₁ s₂ s₃ : Set.{u} α},\n  @LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s₁ s₂ →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s₂ s₃ →\n      @LT.lt.{u} (Set.{u} α)\n        (@Preorder.toLT.{u} (Set.{u} α)\n          (@PartialOrder.toPreorder.{u} (Set.{u} α)\n            (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n              (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n                (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n        s₁ s₃"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-68cd8da17b0808a18ad28b0f7c15e537443aebd8def44a879d6a67e5e37d2388","qualified_name":"Set.ssubset_of_subset_of_ssubset","statement":"∀ {α : Type u} {s₁ s₂ s₃ : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s₁ s₂ →\n    @LT.lt.{u} (Set.{u} α)\n        (@Preorder.toLT.{u} (Set.{u} α)\n          (@PartialOrder.toPreorder.{u} (Set.{u} α)\n            (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n              (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n                (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n        s₂ s₃ →\n      @LT.lt.{u} (Set.{u} α)\n        (@Preorder.toLT.{u} (Set.{u} α)\n          (@PartialOrder.toPreorder.{u} (Set.{u} α)\n            (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n              (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n                (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n        s₁ s₃"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-4bc1a9245b77536c031f948ced962e3006c33f598538cba155e6801f8e2e011a","qualified_name":"Set.ssubset_union_left_iff","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff\n    (@LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t))\n    (Not (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t s))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-c253ab956d15b430c31c7ccb64bcbda966e42291af1882cde809641367e87712","qualified_name":"Set.ssubset_union_right_iff","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff\n    (@LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      t (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t))\n    (Not (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-604b5be791bc6bbd3ca6612302c957312cb0a7c06fe63e877c4bd108a9d58e03","qualified_name":"Set.ssubset_univ_iff","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff\n    (@LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s (@Set.univ.{u} α))\n    (@Ne.{u + 1} (Set.{u} α) s (@Set.univ.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-dab1463224bf57af015d44d1da40b2dd14158838f0fa82053f92b578aefe35e9","qualified_name":"Set.ssubset_univ_iff_nonempty_compl","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff\n    (@LT.lt.{u} (Set.{u} α)\n      (@Preorder.toLT.{u} (Set.{u} α)\n        (@PartialOrder.toPreorder.{u} (Set.{u} α)\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} α)\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} α)\n              (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))))\n      s (@Set.univ.{u} α))\n    (@Set.Nonempty.{u} α (@Compl.compl.{u} (Set.{u} α) (@Set.instCompl.{u} α) s))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-c1312bf578738ee3b15c9c56c3bdb31bce4165dba56605c44e755c60be41b4d5","qualified_name":"Set.subset_def","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @Eq.{1} Prop (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t)\n    (∀ (x : α),\n      @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x →\n        @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-1fa122a0e05c95e95696342182400643099a360fceae6884ceb64db5679dc6c7","qualified_name":"Set.subset_empty_iff","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff\n    (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))\n    (@Eq.{u + 1} (Set.{u} α) s (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-83a2dc871acabceaa3244b1e665296e8fc4dc02e11f5259a2e02b614c42ae69f","qualified_name":"Set.subset_eq_empty","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t s →\n    @Eq.{u + 1} (Set.{u} α) s (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)) →\n      @Eq.{u + 1} (Set.{u} α) t (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-46c4d0d8c8f43397db91a57d9d36583c7954198fa7b5c4e8f44dbf55a1bc381a","qualified_name":"Set.subset_iff_notMem","statement":"∀ {α : Type u} {s t : Set.{u} α}, Iff (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t) (∀ ⦃a : α⦄, a ∉ t → a ∉ s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-de14ae33842c7e546191f7802b48f221f8fc7a40a342a0dac9033872ab095ef5","qualified_name":"Set.subset_inter","statement":"∀ {α : Type u} {s t r : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) r s →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) r t →\n      @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) r (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-0b1e2fb34d781bcd66c287299fa5c61fa7b29c5293d57f1a2653ccbb6076cdd9","qualified_name":"Set.subset_inter_iff","statement":"∀ {α : Type u} {s t r : Set.{u} α},\n  Iff (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) r (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s t))\n    (And (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) r s) (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) r t))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-39864ab0cc65026c8e9426e4e1624ae037e8d1290367bd9413560fa9e76f3698","qualified_name":"Set.subset_ofPred","statement":"∀ {α : Type u} {p : α → Prop} {s : Set.{u} α},\n  Iff (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s (@Set.ofPred.{u} α p))\n    (∀ (x : α), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x → p x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b3343cb438da4c928f601b293ea521a1ef23a700d789a51bd6be243238ca60dc","qualified_name":"Set.subset_of_mem_powerset","statement":"∀ {α : Type u} {x s : Set.{u} α},\n  @Membership.mem.{u, u} (Set.{u} α) (Set.{u} (Set.{u} α)) (@Set.instMembership.{u} (Set.{u} α)) (@Set.powerset.{u} α s)\n      x →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) x s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-5437207c725d7183d93b10531a63cd1a7fd981b5ca5efba8f12d5ef4ba3e3b78","qualified_name":"Set.subset_setOf","statement":"∀ {α : Type u} {p : α → Prop} {s : Set.{u} α},\n  Iff (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s (@Set.ofPred.{u} α p))\n    (∀ (x : α), @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x → p x)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f9a1ec5686250a7d3bf52b9483f8edf28fcb42ca9687505b7eb59c4d926f0def","qualified_name":"Set.subset_union_left","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-abab0a014f794a60571d05528e837fa7e2e688fc957211193ea5933be6f83460","qualified_name":"Set.subset_union_of_subset_left","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t →\n    ∀ (u : Set.{u} α),\n      @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) t u)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-692bbe6d78cca4ae715d33111a99a1359b4fdfcb703958988010b7c50ea9687e","qualified_name":"Set.subset_union_of_subset_right","statement":"∀ {α : Type u} {s u : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s u →\n    ∀ (t : Set.{u} α),\n      @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) t u)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-211836c75da1ced33869b213e648f2c975ed7dce07e8e0199879c00812db2bdf","qualified_name":"Set.subset_union_right","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-fd508fed63ed8f9a7454775b3e468f49e08535cdcef4180234674473c712e9a5","qualified_name":"Set.subset_univ","statement":"∀ {α : Type u} (s : Set.{u} α), @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s (@Set.univ.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-bc8a192b1f0a13763346b145a456044eb1a8aee5d413af04f5090584f401c1be","qualified_name":"Set.sup_eq_union","statement":"∀ {α : Type u},\n  @Eq.{u + 1} (Set.{u} α → Set.{u} α → Set.{u} α)\n    (fun x1 x2 =>\n      @Max.max.{u} (Set.{u} α)\n        (@SemilatticeSup.toMax.{u} (Set.{u} α)\n          (@Lattice.toSemilatticeSup.{u} (Set.{u} α)\n            (@DistribLattice.toLattice.{u} (Set.{u} α) (@Set.instDistribLattice.{u} α))))\n        x1 x2)\n    fun x1 x2 => @Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) x1 x2"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-790ff05230f43f77eaa66a2ce3fabbcdc21d1b54eee1285837bdc5486a08a539","qualified_name":"Set.top_eq_univ","statement":"∀ {α : Type u},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Top.top.{u} (Set.{u} α)\n      (@OrderTop.toTop.{u} (Set.{u} α) (@Set.instLE.{u} α)\n        (@BoundedOrder.toOrderTop.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Set.instBoundedOrder.{u} α))))\n    (@Set.univ.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b8bacb6dd38a4cb42a6bb5db0669984dc566bfada283c69aec2c01d61fa92fe9","qualified_name":"Set.union_assoc","statement":"∀ {α : Type u} (a b c : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) a b) c)\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) a (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) b c))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-03b3b586f9514b51e212c33d649c24b11fd06f02d4003dc21acc98945cd039a2","qualified_name":"Set.union_comm","statement":"∀ {α : Type u} (a b : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) a b)\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) b a)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-c3a28ac309bb9d469c8bda70689a710eb0348723e488fcb6d131cfdb50304619","qualified_name":"Set.union_congr_left","statement":"∀ {α : Type u} {s t u : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s u) →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) u (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t) →\n      @Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t)\n        (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s u)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-19ec2e1776c4cdf2e165cc71311ef51bc14c1ecd8cc7586bf8ab1261bbf01e7a","qualified_name":"Set.union_congr_right","statement":"∀ {α : Type u} {s t u : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) t u) →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s u) →\n      @Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s u)\n        (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) t u)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-18b24d63522e38c5dd4b0e43676fb11a22a8746a51a4efb3eb7b86b37d0c6b2d","qualified_name":"Set.union_def","statement":"∀ {α : Type u} {s₁ s₂ : Set.{u} α},\n  @Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s₁ s₂)\n    (@Set.ofPred.{u} α fun a =>\n      Or (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s₁ a)\n        (@Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s₂ a))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-e9a54ce936b90926f86714e927c3e291be6788aa5716edcf0a6c7b59efde853d","qualified_name":"Set.union_empty","statement":"∀ {α : Type u} (a : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) a\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))\n    a"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-49d71f1c25301309e659dbbbeed2ee04fa1a197abc623309a594654eaa1c3db0","qualified_name":"Set.union_empty_iff","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff\n    (@Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t)\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))\n    (And (@Eq.{u + 1} (Set.{u} α) s (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))\n      (@Eq.{u + 1} (Set.{u} α) t (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α))))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-ba3a45496078232dd804c4b6dda8e7638418084673576f316c1f42db02f35c11","qualified_name":"Set.union_eq_left","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff (@Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t) s)\n    (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-62cd01971b15baca7e455c1840302cf4a8a935498d5d680c6f7c0e21802e25c1","qualified_name":"Set.union_eq_right","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff (@Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t) t)\n    (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-cfed998cf497285e1d3869c50fb0859551a3bab82575c47a07b275b157ab0917","qualified_name":"Set.union_eq_self_of_subset_left","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s t →\n    @Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t) t"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-3ed228de6e5a2e3d90fb29d9bd9fc5779730828136e13d81170c6ae3beebc662","qualified_name":"Set.union_eq_self_of_subset_right","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t s →\n    @Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t) s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-4de3d44e43aa3956b1ac67e3c7409624a14fbe47c6568eefc50576d6884f7716","qualified_name":"Set.union_eq_union_iff_left","statement":"∀ {α : Type u} {s t u : Set.{u} α},\n  Iff\n    (@Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s u))\n    (And (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s u))\n      (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) u (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-ee19492bb828169bb931a53b17f59ca918afafda1d521fa664aab8350d3ee730","qualified_name":"Set.union_eq_union_iff_right","statement":"∀ {α : Type u} {s t u : Set.{u} α},\n  Iff\n    (@Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s u)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) t u))\n    (And (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) t u))\n      (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s u)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-e9de7547a7c16f8ba76bb1bb4f8c5671e1c54c2faf6115ff2161923af6312a08","qualified_name":"Set.union_eq_union_mono_left","statement":"∀ {α : Type u} {t u s₁ s₂ : Set.{u} α},\n  @Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s₁ t)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s₁ u) →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s₁ s₂ →\n      @Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s₂ t)\n        (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s₂ u)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-ea1febf1979b1b82e01860f8a6cbbcd37c1eec6bb56be6cb472484a81db38db5","qualified_name":"Set.union_eq_union_mono_right","statement":"∀ {α : Type u} {s t u₁ u₂ : Set.{u} α},\n  @Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s u₁)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) t u₁) →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) u₁ u₂ →\n      @Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s u₂)\n        (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) t u₂)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-9f503603ad34e1cc6a29837386d7e5d69e258a84f5c4fb8c1b3cf028c2149098","qualified_name":"Set.union_inter_cancel_left","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t) s) s"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-7d4ee13dca30359ce1abe0c1535396b87539de6d96fba0dd797e56e241fcbde7","qualified_name":"Set.union_inter_cancel_right","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  @Eq.{u + 1} (Set.{u} α)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t) t) t"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-6e0b4095c030cb8fbc6ec2fec2e9beff836ad1aae3bc1b5962bcedf3f1eadda2","qualified_name":"Set.union_inter_distrib_left","statement":"∀ {α : Type u} (s t u : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) t u))\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s u))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-a0c8aa101829bc23d05553f5cfc3aa0b739a2540bc1bf1deb7d68100a99d8679","qualified_name":"Set.union_inter_distrib_right","statement":"∀ {α : Type u} (s t u : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t) u)\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) s u)\n      (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) t u))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-030e2ac85c4835a52c082c08b836a27699bdcd85b2be18dc9848d276da2eccbb","qualified_name":"Set.union_isAssoc","statement":"∀ {α : Type u},\n  @Std.Associative.{u + 1} (Set.{u} α) fun x1 x2 => @Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) x1 x2"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-c6c251e5f0d20c45f57a428bb5779b220d77dc830bbbd62c7d3b8c49f23803d2","qualified_name":"Set.union_isComm","statement":"∀ {α : Type u},\n  @Std.Commutative.{u + 1} (Set.{u} α) fun x1 x2 => @Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) x1 x2"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-7da7b2adf7d6b60e56dda35e39c3dfb3b5f1f6f7946905a160f852f0baef6e3d","qualified_name":"Set.union_left_comm","statement":"∀ {α : Type u} (s₁ s₂ s₃ : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s₁ (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s₂ s₃))\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s₂ (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s₁ s₃))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-cf69479fb84f83114ff366a09b5377404d657c3ccd860d0e3ab34c4caff10a1b","qualified_name":"Set.union_nonempty","statement":"∀ {α : Type u} {s t : Set.{u} α},\n  Iff (@Set.Nonempty.{u} α (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t))\n    (Or (@Set.Nonempty.{u} α s) (@Set.Nonempty.{u} α t))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-3a8eed2bd2c4359f9b90de15b4f059f38e99fb4da71a9183821437ef35435423","qualified_name":"Set.union_right_comm","statement":"∀ {α : Type u} (s₁ s₂ s₃ : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s₁ s₂) s₃)\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s₁ s₃) s₂)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-86b8475fe0c77b0602648b1ec5763305626c570209209eb42f472368fd25543c","qualified_name":"Set.union_self","statement":"∀ {α : Type u} (a : Set.{u} α), @Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) a a) a"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-b6d1af111b149299db08abf12afbd429a72519bb7b0e45f2c5f25955da2bd44b","qualified_name":"Set.union_subset","statement":"∀ {α : Type u} {s t r : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s r →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t r →\n      @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t) r"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-5dc2557616f4b0e4998542d0ec32a18109dfe05c714772a701bb17466a3522ee","qualified_name":"Set.union_subset_iff","statement":"∀ {α : Type u} {s t u : Set.{u} α},\n  Iff (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t) u)\n    (And (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s u) (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t u))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-abd9848b7ee01f61412ac3706a80df84494e1e8aab1c95186fb808e39258527e","qualified_name":"Set.union_subset_union","statement":"∀ {α : Type u} {s₁ s₂ t₁ t₂ : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s₁ s₂ →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t₁ t₂ →\n      @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s₁ t₁)\n        (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s₂ t₂)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-01258a2a211d63dc1e2f4389f86f8f7c467803b9008dcd6678ffce4b53224b09","qualified_name":"Set.union_subset_union_left","statement":"∀ {α : Type u} {s₁ s₂ : Set.{u} α} (t : Set.{u} α),\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) s₁ s₂ →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s₁ t)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s₂ t)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-a7fe400c0b57fd9cf761926d686c45d74f13f5960ddb4a5825a5b0aa9750a2fb","qualified_name":"Set.union_subset_union_right","statement":"∀ {α : Type u} (s : Set.{u} α) {t₁ t₂ : Set.{u} α},\n  @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) t₁ t₂ →\n    @LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t₁)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t₂)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-ff7cba435ffc5f4f986ef3fa8e72076ae94c6b0af82ed42778473830f2ef86d5","qualified_name":"Set.union_union_distrib_left","statement":"∀ {α : Type u} (s t u : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) t u))\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s u))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-3456162ff7032a5e6041c3a06d48d6b492e69517941da2e969b68ef58bd1ca7d","qualified_name":"Set.union_union_distrib_right","statement":"∀ {α : Type u} (s t u : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t) u)\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s u)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) t u))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f77e83fd77567013303320813c154f581202d301d841708b05107faac7fdd3e4","qualified_name":"Set.union_union_union_comm","statement":"∀ {α : Type u} (s t u v : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α)\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s t)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) u v))\n    (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s u)\n      (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) t v))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f66ddf450906b508f477401ceddf489e78f01772fc40b3c86f5769c08276709a","qualified_name":"Set.union_univ","statement":"∀ {α : Type u} (s : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) s (@Set.univ.{u} α)) (@Set.univ.{u} α)"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-1e4c5a22522770a5d96f1b043d64716c7fff14b097459cff57306de6383630e1","qualified_name":"Set.uniqueEmpty","statement":"{α : Type u} → [IsEmpty.{u + 1} α] → Unique.{u + 1} (Set.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-674f864cb474fc93457d353b11321cd905a8cd2403d121bfb7cd74f6e231d599","qualified_name":"Set.univ.nonempty","statement":"∀ {α : Type u} [Nonempty.{u + 1} α], Nonempty.{u + 1} (@Set.Elem.{u} α (@Set.univ.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-024458443fa531467a3829ed4af0ee94bee5eecce5432c6c6958354fd4c38d9e","qualified_name":"Set.univ_eq_empty_iff","statement":"∀ {α : Type u},\n  Iff\n    (@Eq.{u + 1} (Set.{u} α) (@Set.univ.{u} α)\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} α) (@Set.instEmptyCollection.{u} α)))\n    (IsEmpty.{u + 1} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-64d564b3a79318362f6776bf478353db796f0b36ae78212eaf28e64d6071f3c6","qualified_name":"Set.univ_inter","statement":"∀ {α : Type u} (a : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α) (@Inter.inter.{u} (Set.{u} α) (@Set.instInter.{u} α) (@Set.univ.{u} α) a) a"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-78d5fea416ceec127a71bcb436b4638e4d591342d40c090bbe24ccfa5872e545","qualified_name":"Set.univ_nonempty","statement":"∀ {α : Type u} [Nonempty.{u + 1} α], @Set.Nonempty.{u} α (@Set.univ.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-55e2744b34cf78edd22683699860968748354538f0790d7b49536e32987001af","qualified_name":"Set.univ_subset_iff","statement":"∀ {α : Type u} {s : Set.{u} α},\n  Iff (@LE.le.{u} (Set.{u} α) (@Set.instLE.{u} α) (@Set.univ.{u} α) s) (@Eq.{u + 1} (Set.{u} α) s (@Set.univ.{u} α))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-a4c3649f5d0b8ea5a7e5c85040da7b157502bbf1a7c43aef1cb960a9859d41c3","qualified_name":"Set.univ_union","statement":"∀ {α : Type u} (s : Set.{u} α),\n  @Eq.{u + 1} (Set.{u} α) (@Union.union.{u} (Set.{u} α) (@Set.instUnion.{u} α) (@Set.univ.{u} α) s) (@Set.univ.{u} α)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f1b72d4aaa1c645ab32ead7380bbbaa3ecaa1e24d8427568c260a6c648c06b53","qualified_name":"Set.univ_unique","statement":"∀ {α : Type u} [inst : Unique.{u + 1} α],\n  @Eq.{u + 1} (Set.{u} α) (@Set.univ.{u} α)\n    (@Singleton.singleton.{u, u} α (Set.{u} α) (@Set.instSingletonSet.{u} α)\n      (@Inhabited.default.{u + 1} α (@Unique.instInhabited.{u + 1} α inst)))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-824ac5d5179e91910110134ea04865704c98a582339385c97e21ffc1566b1ba5","qualified_name":"SetCoe.exists","statement":"∀ {α : Type u} {s : Set.{u} α} {p : @Set.Elem.{u} α s → Prop},\n  Iff (∃ x, p x)\n    (∃ x,\n      ∃ (h : @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x),\n        p (@Subtype.mk.{u + 1} α (fun x => @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) x h))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-26bd50d97eca54e99ec10409df549af7215b4524d6d3742217a7c1496a02c1b7","qualified_name":"SetCoe.exists'","statement":"∀ {α : Type u} {s : Set.{u} α}\n  {p : (x : α) → @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x → Prop},\n  Iff (∃ x, ∃ (h : @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x), p x h)\n    (∃ x,\n      p (@Subtype.val.{u + 1} α (fun x => @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) x) ⋯)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-6a03470afeb1ab975ad898be6bdb2414a43ac1e401ac3368b6267bca85362ee8","qualified_name":"SetCoe.ext","statement":"∀ {α : Type u} {s : Set.{u} α} {a b : @Set.Elem.{u} α s},\n  @Eq.{u + 1} α\n      (@Subtype.val.{u + 1} α (fun x => @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) a)\n      (@Subtype.val.{u + 1} α (fun x => @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) b) →\n    @Eq.{u + 1} (@Set.Elem.{u} α s) a b"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-8ce8797fc881b5418c5894e4638ac9ee4320b3cfe050a1fa825c5f0f65bcd5b8","qualified_name":"SetCoe.ext_iff","statement":"∀ {α : Type u} {s : Set.{u} α} {a b : @Set.Elem.{u} α s},\n  Iff\n    (@Eq.{u + 1} α\n      (@Subtype.val.{u + 1} α (fun x => @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) a)\n      (@Subtype.val.{u + 1} α (fun x => @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) b))\n    (@Eq.{u + 1} (@Set.Elem.{u} α s) a b)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-cadbcc35e610edb208d1b32b81b139d8e4d3c50b1b141822396a39776cd713fd","qualified_name":"SetCoe.forall","statement":"∀ {α : Type u} {s : Set.{u} α} {p : @Set.Elem.{u} α s → Prop},\n  Iff (∀ (x : @Set.Elem.{u} α s), p x)\n    (∀ (x : α) (h : @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x),\n      p (@Subtype.mk.{u + 1} α (fun x => @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) x h))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-f82d07396fc2b8db61e021ea758260dd7bf86db531b05bff2a62346a8b94da3b","qualified_name":"SetCoe.forall'","statement":"∀ {α : Type u} {s : Set.{u} α}\n  {p : (x : α) → @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x → Prop},\n  Iff (∀ (x : α) (h : @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x), p x h)\n    (∀ (x : @Set.Elem.{u} α s),\n      p (@Subtype.val.{u + 1} α (fun x => @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) x) ⋯)"},{"kind":"inductive","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-bbc888a8b3bf63ff27dafb19f6ce1437bef5b87297f10c25aa54db388b1dfb78","qualified_name":"SimpleGraph","statement":"Type u → Type u"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-64474f96933c1997a203d4aa5aac22bb5e275af20b5efc43266d454505cdec21","qualified_name":"SimpleGraph.Adj","statement":"{V : Type u} → SimpleGraph.{u} V → V → V → Prop"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-08df8a9fac356f2f5c3a4aa494b91e65892c6c10bf4425ae217b0c7792ae4ac9","qualified_name":"SimpleGraph.Adj.left_mem_support","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {u v : V},\n  @SimpleGraph.Adj.{u} V G u v →\n    @Membership.mem.{u, u} V (Set.{u} V) (@Set.instMembership.{u} V) (@SimpleGraph.support.{u} V G) u"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-86635597538b16f126855a5dce7848c4f1a8afee6d8cd4c5ffc266df077fa5d7","qualified_name":"SimpleGraph.Adj.mem_support_left","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {u v : V},\n  @SimpleGraph.Adj.{u} V G u v →\n    @Membership.mem.{u, u} V (Set.{u} V) (@Set.instMembership.{u} V) (@SimpleGraph.support.{u} V G) u"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-a95b5b737870089cdabfdcd35273ceecb89c11fc26fee9a64de34c356e6f5a77","qualified_name":"SimpleGraph.Adj.mem_support_right","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {u v : V},\n  @SimpleGraph.Adj.{u} V G u v →\n    @Membership.mem.{u, u} V (Set.{u} V) (@Set.instMembership.{u} V) (@SimpleGraph.support.{u} V G) v"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-83a912555f68fa860bf6ce4c601af8c7adb719186ea47a70763d3fe2174417e9","qualified_name":"SimpleGraph.Adj.ne","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {a b : V}, @SimpleGraph.Adj.{u} V G a b → @Ne.{u + 1} V a b"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-4f2a1fa4fe8a5d661cf83a1c353b8d911d4cdc4dac3282339f899b3ee45051d6","qualified_name":"SimpleGraph.Adj.ne'","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {a b : V}, @SimpleGraph.Adj.{u} V G a b → @Ne.{u + 1} V b a"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-39d3060fab5ba134d8781edba11662005acbb10682e0aac95f2cedb52123c889","qualified_name":"SimpleGraph.Adj.nontrivial","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {u v : V}, @SimpleGraph.Adj.{u} V G u v → Nontrivial.{u} V"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-940a15949a5a0f9b946f567d5b623156f641909daced2cfa2a6dd2989d9a7a7c","qualified_name":"SimpleGraph.Adj.not_isIsolated_left","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {u v : V}, @SimpleGraph.Adj.{u} V G u v → Not (@SimpleGraph.IsIsolated.{u} V G u)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-34b300796692736129ffc7a854170c3a7c8b097ac20fce294bab9d9b5a1f9363","qualified_name":"SimpleGraph.Adj.not_isIsolated_right","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {u v : V}, @SimpleGraph.Adj.{u} V G u v → Not (@SimpleGraph.IsIsolated.{u} V G v)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-62727f80ad2b4745ef7185e8e5e327f3f5e05e232bd02de982a50042a0b3ecb4","qualified_name":"SimpleGraph.Adj.right_mem_support","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {u v : V},\n  @SimpleGraph.Adj.{u} V G u v →\n    @Membership.mem.{u, u} V (Set.{u} V) (@Set.instMembership.{u} V) (@SimpleGraph.support.{u} V G) v"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-1b8ff78f378fb6544355a876cb48460086761020eb61952ba120c05e09947768","qualified_name":"SimpleGraph.Adj.symm","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {u v : V}, @SimpleGraph.Adj.{u} V G u v → @SimpleGraph.Adj.{u} V G v u"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-92893958a0fb152b667d196ca9e480695ad6b3fcbf1154102cc2bba11908843f","qualified_name":"SimpleGraph.Bot.adjDecidable","statement":"(V : Type u) →\n  @DecidableRel.{u + 1, u + 1} V V\n    (@SimpleGraph.Adj.{u} V\n      (@Bot.bot.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-b8d02a137db54b8043ab9932fdcd4a2972a5c1003b7f14179d901db7d422802b","qualified_name":"SimpleGraph.Compl.adjDecidable","statement":"(V : Type u) →\n  (G : SimpleGraph.{u} V) →\n    [@DecidableRel.{u + 1, u + 1} V V (@SimpleGraph.Adj.{u} V G)] →\n      [DecidableEq.{u + 1} V] →\n        @DecidableRel.{u + 1, u + 1} V V\n          (@SimpleGraph.Adj.{u} V (@Compl.compl.{u} (SimpleGraph.{u} V) (@SimpleGraph.instCompl.{u} V) G))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-ec89e2ef9430f838bd88da3771ca47ebf7f5b543eb50227f953e14d55949fab3","qualified_name":"SimpleGraph.Inf.adjDecidable","statement":"(V : Type u) →\n  (G H : SimpleGraph.{u} V) →\n    [@DecidableRel.{u + 1, u + 1} V V (@SimpleGraph.Adj.{u} V G)] →\n      [@DecidableRel.{u + 1, u + 1} V V (@SimpleGraph.Adj.{u} V H)] →\n        @DecidableRel.{u + 1, u + 1} V V\n          (@SimpleGraph.Adj.{u} V (@Min.min.{u} (SimpleGraph.{u} V) (@SimpleGraph.instMin.{u} V) G H))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-7da6cd6f318744c1ec0ea7e767bc316105c94ac398eb0e021a1caaf5a2be76b3","qualified_name":"SimpleGraph.IsCompleteBetween","statement":"{V : Type u} → SimpleGraph.{u} V → Set.{u} V → Set.{u} V → Prop"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-daf68018da078e93d5ef1da9d4f9fe47fdd9477ab7ed5211a22a2e72a263c31b","qualified_name":"SimpleGraph.IsCompleteBetween.completeBipartiteGraph","statement":"∀ (V : Type u_2) (W : Type u_3),\n  @SimpleGraph.IsCompleteBetween.{max u_2 u_3} (Sum.{u_2, u_3} V W) (completeBipartiteGraph.{u_2, u_3} V W)\n    (@Set.range.{max u_2 u_3, u_2 + 1} (Sum.{u_2, u_3} V W) V (@Sum.inl.{u_2, u_3} V W))\n    (@Set.range.{max u_2 u_3, u_3 + 1} (Sum.{u_2, u_3} V W) W (@Sum.inr.{u_2, u_3} V W))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-11d370c82b8e7a6d6cdb236d8786bf1ca3b096c025577083b5f9e0ba0135b8bb","qualified_name":"SimpleGraph.IsCompleteBetween.disjoint","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {s t : Set.{u} V},\n  @SimpleGraph.IsCompleteBetween.{u} V G s t →\n    @Disjoint.{u} (Set.{u} V)\n      (@SemilatticeInf.toPartialOrder.{u} (Set.{u} V)\n        (@Lattice.toSemilatticeInf.{u} (Set.{u} V)\n          (@GeneralizedCoheytingAlgebra.toLattice.{u} (Set.{u} V)\n            (@CoheytingAlgebra.toGeneralizedCoheytingAlgebra.{u} (Set.{u} V)\n              (@BiheytingAlgebra.toCoheytingAlgebra.{u} (Set.{u} V)\n                (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} V) (@Set.instBooleanAlgebra.{u} V)))))))\n      (@HeytingAlgebra.toOrderBot.{u} (Set.{u} V)\n        (@BiheytingAlgebra.toHeytingAlgebra.{u} (Set.{u} V)\n          (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} V) (@Set.instBooleanAlgebra.{u} V))))\n      s t"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-abbbc370930d2dd3caaa8847563405efb57003544fe765db11824d0dcdf59676","qualified_name":"SimpleGraph.IsCompleteBetween.symm","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {s t : Set.{u} V},\n  @SimpleGraph.IsCompleteBetween.{u} V G s t → @SimpleGraph.IsCompleteBetween.{u} V G t s"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-d4fcc617619b055aeca965ff6b9d36ecb173ee77ace4c9fe42f3d6a06de3e849","qualified_name":"SimpleGraph.IsIsolated","statement":"{V : Type u} → SimpleGraph.{u} V → V → Prop"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-99fc1a8a3d201e326519c88f3501906795c6e2fa9f9b6fdb2a2bc46def91feec","qualified_name":"SimpleGraph.IsIsolated.bot","statement":"∀ {V : Type u} {v : V},\n  @SimpleGraph.IsIsolated.{u} V\n    (@Bot.bot.{u} (SimpleGraph.{u} V)\n      (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n        (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))\n    v"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-3c267009fdc271988d0eda9371aa865a263ca3468a52abeea30caf6702673e01","qualified_name":"SimpleGraph.IsIsolated.neighborSet_eq_empty","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {v : V},\n  @SimpleGraph.IsIsolated.{u} V G v →\n    @Eq.{u + 1} (Set.{u} V) (@SimpleGraph.neighborSet.{u} V G v)\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} V) (@Set.instEmptyCollection.{u} V))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-138e1b1e123b60e9315c894cab44a357a9acde3b6a1e3538a6a120845f0ecbef","qualified_name":"SimpleGraph.IsIsolated.not_isUniversal","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V} [Nontrivial.{u} V],\n  @SimpleGraph.IsIsolated.{u} V G v → ∀ (w : V), Not (@SimpleGraph.IsUniversal.{u} V G w)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-73531962be22deedf53f7385656180128899c2d1e129a1a755873460ef2e3b19","qualified_name":"SimpleGraph.IsIsolated.of_isUniversal_compl","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V},\n  @SimpleGraph.IsUniversal.{u} V (@Compl.compl.{u} (SimpleGraph.{u} V) (@SimpleGraph.instCompl.{u} V) G) v →\n    @SimpleGraph.IsIsolated.{u} V G v"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-611b68fa6a187885c0f85ce7aa405110013ef74198b761805106ffafeb7722f7","qualified_name":"SimpleGraph.IsIsolated.of_neighborSet_eq_empty","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {v : V},\n  @Eq.{u + 1} (Set.{u} V) (@SimpleGraph.neighborSet.{u} V G v)\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} V) (@Set.instEmptyCollection.{u} V)) →\n    @SimpleGraph.IsIsolated.{u} V G v"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-5f2f8275a67eaee5c7ae768da9fb327343d0589a3569dadb6e544e59b1c3382f","qualified_name":"SimpleGraph.IsIsolated.of_subsingleton","statement":"∀ {V : Type u} [Subsingleton.{u + 1} V] (G : SimpleGraph.{u} V) (v : V), @SimpleGraph.IsIsolated.{u} V G v"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-106e4b08a4baf159c3d399117c76b73915d3d975b14305dd331ded5084008af8","qualified_name":"SimpleGraph.IsSubgraph","statement":"{V : Type u} → SimpleGraph.{u} V → SimpleGraph.{u} V → Prop"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-c404a438392e41cfe49a201e3e0f09e573a3978ba8d15aceac5befc8f1490771","qualified_name":"SimpleGraph.IsUniversal","statement":"{V : Type u} → SimpleGraph.{u} V → V → Prop"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-07e1ae7c94d14f736480ba8d45c6a1977a7f91c9dba58841b573e77b6b357917","qualified_name":"SimpleGraph.IsUniversal.neighborSet_eq","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V},\n  @SimpleGraph.IsUniversal.{u} V G v →\n    @Eq.{u + 1} (Set.{u} V) (@SimpleGraph.neighborSet.{u} V G v)\n      (@Compl.compl.{u} (Set.{u} V) (@Set.instCompl.{u} V)\n        (@Singleton.singleton.{u, u} V (Set.{u} V) (@Set.instSingletonSet.{u} V) v))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-0a8b6aa86810d6015fbfc9520251ecff79dcf632d6391f6946318c6642c7935d","qualified_name":"SimpleGraph.IsUniversal.not_isIsolated","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V} [Nontrivial.{u} V],\n  @SimpleGraph.IsUniversal.{u} V G v → ∀ (w : V), Not (@SimpleGraph.IsIsolated.{u} V G w)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-a08f67fb888e8401ef99f3811a75c34979d6ec018c6bad73e4348fcffe424544","qualified_name":"SimpleGraph.IsUniversal.of_isIsolated_compl","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V},\n  @SimpleGraph.IsIsolated.{u} V (@Compl.compl.{u} (SimpleGraph.{u} V) (@SimpleGraph.instCompl.{u} V) G) v →\n    @SimpleGraph.IsUniversal.{u} V G v"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-dd5ce6c2a84e037e301d4e9ebcb77d994b2ab21d8fe0c6158cbadd04abeb649b","qualified_name":"SimpleGraph.IsUniversal.of_neighborSet_eq","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V},\n  @Eq.{u + 1} (Set.{u} V) (@SimpleGraph.neighborSet.{u} V G v)\n      (@Compl.compl.{u} (Set.{u} V) (@Set.instCompl.{u} V)\n        (@Singleton.singleton.{u, u} V (Set.{u} V) (@Set.instSingletonSet.{u} V) v)) →\n    @SimpleGraph.IsUniversal.{u} V G v"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-b7d25f218ae3616bd7776834c56dfaf972a483890f6ac18228b5b648e1c89eb7","qualified_name":"SimpleGraph.IsUniversal.of_subsingleton","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V} [Subsingleton.{u + 1} V], @SimpleGraph.IsUniversal.{u} V G v"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-79143f7edcb9806dc43606f279c4eec7f3045a500fe5e5b27e832a5be19f1f59","qualified_name":"SimpleGraph.IsUniversal.top","statement":"∀ {V : Type u} {v : V},\n  @SimpleGraph.IsUniversal.{u} V\n    (@Top.top.{u} (SimpleGraph.{u} V)\n      (@BooleanAlgebra.toTop.{u} (SimpleGraph.{u} V)\n        (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))\n    v"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-111d2d3c73afa51f84b31cb21e6afdcbb3ec4366d479e68c6965eb1afbf0af43","qualified_name":"SimpleGraph.Sdiff.adjDecidable","statement":"(V : Type u) →\n  (G H : SimpleGraph.{u} V) →\n    [@DecidableRel.{u + 1, u + 1} V V (@SimpleGraph.Adj.{u} V G)] →\n      [@DecidableRel.{u + 1, u + 1} V V (@SimpleGraph.Adj.{u} V H)] →\n        @DecidableRel.{u + 1, u + 1} V V\n          (@SimpleGraph.Adj.{u} V (@SDiff.sdiff.{u} (SimpleGraph.{u} V) (@SimpleGraph.sdiff.{u} V) G H))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-e2814c5715e124d152bdf840cffa713b36b0ecb211dcd4161a2e47d94837377d","qualified_name":"SimpleGraph.Sup.adjDecidable","statement":"(V : Type u) →\n  (G H : SimpleGraph.{u} V) →\n    [@DecidableRel.{u + 1, u + 1} V V (@SimpleGraph.Adj.{u} V G)] →\n      [@DecidableRel.{u + 1, u + 1} V V (@SimpleGraph.Adj.{u} V H)] →\n        @DecidableRel.{u + 1, u + 1} V V\n          (@SimpleGraph.Adj.{u} V (@Max.max.{u} (SimpleGraph.{u} V) (@SimpleGraph.instMax.{u} V) G H))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-0f60ca75e1173fabe1ca321f190d7f8cb46075491168dd5d99ede32181fdb934","qualified_name":"SimpleGraph.Top.adjDecidable","statement":"(V : Type u) →\n  [DecidableEq.{u + 1} V] →\n    @DecidableRel.{u + 1, u + 1} V V\n      (@SimpleGraph.Adj.{u} V\n        (@Top.top.{u} (SimpleGraph.{u} V)\n          (@BooleanAlgebra.toTop.{u} (SimpleGraph.{u} V)\n            (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n                (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-b04aae30bd7f3dee758e767b2f63f05fa6ae0a50afb4397ab1d74cb76b06d93a","qualified_name":"SimpleGraph.adj_comm","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (u v : V), Iff (@SimpleGraph.Adj.{u} V G u v) (@SimpleGraph.Adj.{u} V G v u)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-e4a178924b940288d9fe759214b139906ebf4631a5edd1575cf29147b4df95ce","qualified_name":"SimpleGraph.adj_congr_of_sym2","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {u v w x : V},\n  @Eq.{u + 1} (Sym2.{u} V) (@Sym2.mk.{u} V u v) (@Sym2.mk.{u} V w x) →\n    Iff (@SimpleGraph.Adj.{u} V G u v) (@SimpleGraph.Adj.{u} V G w x)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-ff7f35ac884c998097ddab2a412f0d984891e989e3befa0df6c266a6b5559a2b","qualified_name":"SimpleGraph.adj_iff_exists_edge","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v w : V},\n  Iff (@SimpleGraph.Adj.{u} V G v w)\n    (And (@Ne.{u + 1} V v w)\n      (∃ e,\n        And\n          (@Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n            (@SimpleGraph.edgeSet.{u} V G) e)\n          (And\n            (@Membership.mem.{u, u} V (Sym2.{u} V)\n              (@SetLike.instMembership.{u, u} (Sym2.{u} V) V (@Sym2.instSetLike.{u} V)) e v)\n            (@Membership.mem.{u, u} V (Sym2.{u} V)\n              (@SetLike.instMembership.{u, u} (Sym2.{u} V) V (@Sym2.instSetLike.{u} V)) e w))))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-e092527b10eb633c1c090c64f676458ec4097b8343dcde2e26d9f8138881afa0","qualified_name":"SimpleGraph.adj_iff_exists_edge_coe","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {a b : V},\n  Iff (@SimpleGraph.Adj.{u} V G a b)\n    (∃ e,\n      @Eq.{u + 1} (Sym2.{u} V)\n        (@Subtype.val.{u + 1} (Sym2.{u} V)\n          (fun x =>\n            @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n              (@SimpleGraph.edgeSet.{u} V G) x)\n          e)\n        (@Sym2.mk.{u} V a b))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-4d814a1f300c90baa165aa7e695926d5ad4d8318961f534ee9095ce9f8dd2b88","qualified_name":"SimpleGraph.adj_incidenceSet_inter","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {v : V} {e : Sym2.{u} V},\n  @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n      (@SimpleGraph.edgeSet.{u} V G) e →\n    ∀\n      (h :\n        @Membership.mem.{u, u} V (Sym2.{u} V) (@SetLike.instMembership.{u, u} (Sym2.{u} V) V (@Sym2.instSetLike.{u} V))\n          e v),\n      @Eq.{u + 1} (Set.{u} (Sym2.{u} V))\n        (@Inter.inter.{u} (Set.{u} (Sym2.{u} V)) (@Set.instInter.{u} (Sym2.{u} V)) (@SimpleGraph.incidenceSet.{u} V G v)\n          (@SimpleGraph.incidenceSet.{u} V G (@Sym2.Mem.other.{u} V v e h)))\n        (@Singleton.singleton.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instSingletonSet.{u} (Sym2.{u} V)) e)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-a02ea597c8f09bd451ff58a88782b4a020b116122bb0aa553c52659d8f3be9ae","qualified_name":"SimpleGraph.adj_inj","statement":"∀ {V : Type u} {G H : SimpleGraph.{u} V},\n  Iff (@Eq.{u + 1} (V → V → Prop) (@SimpleGraph.Adj.{u} V G) (@SimpleGraph.Adj.{u} V H))\n    (@Eq.{u + 1} (SimpleGraph.{u} V) G H)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-78b87352ccc7059643a6e1dd922ba7bf54338fab0cc4080d0870fc2975d17538","qualified_name":"SimpleGraph.adj_injective","statement":"∀ {V : Type u}, @Function.Injective.{u + 1, u + 1} (SimpleGraph.{u} V) (V → V → Prop) (@SimpleGraph.Adj.{u} V)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-dd00a1570e4e4b87e795792b8854dfd0e5e03f663d168a5e288a1c935dcea03a","qualified_name":"SimpleGraph.adj_of_mem_incidenceSet","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {a b : V} {e : Sym2.{u} V},\n  @Ne.{u + 1} V a b →\n    @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n        (@SimpleGraph.incidenceSet.{u} V G a) e →\n      @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n          (@SimpleGraph.incidenceSet.{u} V G b) e →\n        @SimpleGraph.Adj.{u} V G a b"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-e349384a7e57b97002df1148f73ef5c5d20ff00216fdd6e811ad43c111957776","qualified_name":"SimpleGraph.adj_symm","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {u v : V}, @SimpleGraph.Adj.{u} V G u v → @SimpleGraph.Adj.{u} V G v u"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-949b328181252d4a98006f874fbb49b292330cfe63ba78188b0d8a7e08ec79fa","qualified_name":"SimpleGraph.bot_adj","statement":"∀ {V : Type u} (v w : V),\n  Iff\n    (@SimpleGraph.Adj.{u} V\n      (@Bot.bot.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))\n      v w)\n    False"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-9b6b792b95d012924a895b91e0995f62fba9f19e3317969fb1e866869bee79fa","qualified_name":"SimpleGraph.card_neighborSet_union_compl_neighborSet","statement":"∀ {V : Type u} [inst : Fintype.{u} V] (G : SimpleGraph.{u} V) (v : V)\n  [inst_1 :\n    Fintype.{u}\n      (@Set.Elem.{u} V\n        (@Union.union.{u} (Set.{u} V) (@Set.instUnion.{u} V) (@SimpleGraph.neighborSet.{u} V G v)\n          (@SimpleGraph.neighborSet.{u} V (@Compl.compl.{u} (SimpleGraph.{u} V) (@SimpleGraph.instCompl.{u} V) G) v)))],\n  @Eq.{1} Nat\n    (@Finset.card.{u} V\n      (@Set.toFinset.{u} V\n        (@Union.union.{u} (Set.{u} V) (@Set.instUnion.{u} V) (@SimpleGraph.neighborSet.{u} V G v)\n          (@SimpleGraph.neighborSet.{u} V (@Compl.compl.{u} (SimpleGraph.{u} V) (@SimpleGraph.instCompl.{u} V) G) v))\n        inst_1))\n    (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) (@Fintype.card.{u} V inst)\n      (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-962e51e829171c5fff0c8184b9986dac84d90b7e3a5ca17d0828831899da1f79","qualified_name":"SimpleGraph.commonNeighbors","statement":"{V : Type u} → SimpleGraph.{u} V → V → V → Set.{u} V"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-12a71838bd6931931dc0d4751439c40cf95b04ea1eda7c60ab6fd9a67be57bb5","qualified_name":"SimpleGraph.commonNeighbors_bot_eq","statement":"∀ {V : Type u} {u v : V},\n  @Eq.{u + 1} (Set.{u} V)\n    (@SimpleGraph.commonNeighbors.{u} V\n      (@Bot.bot.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))\n      u v)\n    (@EmptyCollection.emptyCollection.{u} (Set.{u} V) (@Set.instEmptyCollection.{u} V))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-97ce1b84eef084c81bb3e5c8cbd4fe699a05bfeb083c72db25860f6c89d632c1","qualified_name":"SimpleGraph.commonNeighbors_eq","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v w : V),\n  @Eq.{u + 1} (Set.{u} V) (@SimpleGraph.commonNeighbors.{u} V G v w)\n    (@Inter.inter.{u} (Set.{u} V) (@Set.instInter.{u} V) (@SimpleGraph.neighborSet.{u} V G v)\n      (@SimpleGraph.neighborSet.{u} V G w))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-7bcfa4d02763c3be2f90af95664c83c93152f0b7d84e2c712c092f19094282a3","qualified_name":"SimpleGraph.commonNeighbors_subset_neighborSet_left","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v w : V),\n  @LE.le.{u} (Set.{u} V) (@Set.instLE.{u} V) (@SimpleGraph.commonNeighbors.{u} V G v w)\n    (@SimpleGraph.neighborSet.{u} V G v)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-305462e94fc71ae8464f2865452dffcfd3c4c282c7c3946aeee38ca6ff508f09","qualified_name":"SimpleGraph.commonNeighbors_subset_neighborSet_right","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v w : V),\n  @LE.le.{u} (Set.{u} V) (@Set.instLE.{u} V) (@SimpleGraph.commonNeighbors.{u} V G v w)\n    (@SimpleGraph.neighborSet.{u} V G w)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-ea85153fcc25fee754b80ab4544cac8077eb05f01b7744b2be42686658f77976","qualified_name":"SimpleGraph.commonNeighbors_symm","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v w : V),\n  @Eq.{u + 1} (Set.{u} V) (@SimpleGraph.commonNeighbors.{u} V G v w) (@SimpleGraph.commonNeighbors.{u} V G w v)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-91956134b83889773380bca386a177c33bee6b6649ae19d35c4861c65ceacc08","qualified_name":"SimpleGraph.commonNeighbors_top_eq","statement":"∀ {V : Type u} {v w : V},\n  @Eq.{u + 1} (Set.{u} V)\n    (@SimpleGraph.commonNeighbors.{u} V\n      (@Top.top.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toTop.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))\n      v w)\n    (@SDiff.sdiff.{u} (Set.{u} V) (@Set.instSDiff.{u} V) (@Set.univ.{u} V)\n      (@Insert.insert.{u, u} V (Set.{u} V) (@Set.instInsert.{u} V) v\n        (@Singleton.singleton.{u, u} V (Set.{u} V) (@Set.instSingletonSet.{u} V) w)))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-28fda237e2c7dbe5bcdb4b3393c523e3a5ea926c34594ae68802e8281ec70511","qualified_name":"SimpleGraph.compl_adj","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v w : V),\n  Iff (@SimpleGraph.Adj.{u} V (@Compl.compl.{u} (SimpleGraph.{u} V) (@SimpleGraph.instCompl.{u} V) G) v w)\n    (And (@Ne.{u + 1} V v w) (Not (@SimpleGraph.Adj.{u} V G v w)))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-7b78a307f8997a422f0e5df2871fece52b3adf28b45088cbf2991ea4bcf13682","qualified_name":"SimpleGraph.compl_neighborSet_disjoint","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v : V),\n  @Disjoint.{u} (Set.{u} V)\n    (@SemilatticeInf.toPartialOrder.{u} (Set.{u} V)\n      (@Lattice.toSemilatticeInf.{u} (Set.{u} V)\n        (@GeneralizedCoheytingAlgebra.toLattice.{u} (Set.{u} V)\n          (@CoheytingAlgebra.toGeneralizedCoheytingAlgebra.{u} (Set.{u} V)\n            (@BiheytingAlgebra.toCoheytingAlgebra.{u} (Set.{u} V)\n              (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} V) (@Set.instBooleanAlgebra.{u} V)))))))\n    (@HeytingAlgebra.toOrderBot.{u} (Set.{u} V)\n      (@BiheytingAlgebra.toHeytingAlgebra.{u} (Set.{u} V)\n        (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} V) (@Set.instBooleanAlgebra.{u} V))))\n    (@SimpleGraph.neighborSet.{u} V G v)\n    (@SimpleGraph.neighborSet.{u} V (@Compl.compl.{u} (SimpleGraph.{u} V) (@SimpleGraph.instCompl.{u} V) G) v)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-786630a8568d30a602df576f05307d181956e5bd0881578e48fae9d0d030e5e5","qualified_name":"SimpleGraph.completeAtomicBooleanAlgebra","statement":"{V : Type u} → CompleteAtomicBooleanAlgebra.{u} (SimpleGraph.{u} V)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-0d4fcb1450a59aa6118ee8e9a499e9cfb0970cd00b57348110e85d1f6743f38e","qualified_name":"SimpleGraph.completeGraph","statement":"(V : Type u) → SimpleGraph.{u} V"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-ba56699eebc1f843f8b15745c345f9afbf729c30e66f25d68bccf7046ccdcbe9","qualified_name":"SimpleGraph.completeGraph_eq_top","statement":"∀ (V : Type u),\n  @Eq.{u + 1} (SimpleGraph.{u} V) (SimpleGraph.completeGraph.{u} V)\n    (@Top.top.{u} (SimpleGraph.{u} V)\n      (@BooleanAlgebra.toTop.{u} (SimpleGraph.{u} V)\n        (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-002723bd0e7864cb6034df952c16f6a0222d3f490cf598c772babb7d7d9bafe8","qualified_name":"SimpleGraph.decidableMemCommonNeighbors","statement":"{V : Type u} →\n  (G : SimpleGraph.{u} V) →\n    [@DecidableRel.{u + 1, u + 1} V V (@SimpleGraph.Adj.{u} V G)] →\n      (v w : V) →\n        @DecidablePred.{u + 1} V fun x =>\n          @Membership.mem.{u, u} V (Set.{u} V) (@Set.instMembership.{u} V) (@SimpleGraph.commonNeighbors.{u} V G v w) x"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-50bab85328013252ee931c657845e1e4e7225debf02acb579ff2d25495330778","qualified_name":"SimpleGraph.decidableMemEdgeSet","statement":"{V : Type u} →\n  (G : SimpleGraph.{u} V) →\n    [@DecidableRel.{u + 1, u + 1} V V (@SimpleGraph.Adj.{u} V G)] →\n      @DecidablePred.{u + 1} (Sym2.{u} V) fun x =>\n        @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n          (@SimpleGraph.edgeSet.{u} V G) x"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-368c31d1af52ac70a5ecf967942b3b7dff639faa4b394d1520d2d4d1cf444a51","qualified_name":"SimpleGraph.decidableMemIncidenceSet","statement":"{V : Type u} →\n  (G : SimpleGraph.{u} V) →\n    [DecidableEq.{u + 1} V] →\n      [@DecidableRel.{u + 1, u + 1} V V (@SimpleGraph.Adj.{u} V G)] →\n        (v : V) →\n          @DecidablePred.{u + 1} (Sym2.{u} V) fun x =>\n            @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n              (@SimpleGraph.incidenceSet.{u} V G v) x"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-17dd4978b7bcf1d15e3b39381b3689f5969caec4e2073f32cd104aa6964ba937","qualified_name":"SimpleGraph.default_def","statement":"∀ (V : Type u),\n  @Eq.{u + 1} (SimpleGraph.{u} V) (@Inhabited.default.{u + 1} (SimpleGraph.{u} V) (SimpleGraph.instInhabited.{u} V))\n    (@Bot.bot.{u} (SimpleGraph.{u} V)\n      (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n        (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-81046dc6e32561f9304fa4cb92a89a075fd4427e7c846cc0db47ef3ef62a16d6","qualified_name":"SimpleGraph.disjoint_commonNeighbors","statement":"∀ {V : Type u} {G H : SimpleGraph.{u} V},\n  Iff\n    (∀ (u v : V),\n      @Disjoint.{u} (Set.{u} V)\n        (@SemilatticeInf.toPartialOrder.{u} (Set.{u} V)\n          (@Lattice.toSemilatticeInf.{u} (Set.{u} V)\n            (@GeneralizedCoheytingAlgebra.toLattice.{u} (Set.{u} V)\n              (@CoheytingAlgebra.toGeneralizedCoheytingAlgebra.{u} (Set.{u} V)\n                (@BiheytingAlgebra.toCoheytingAlgebra.{u} (Set.{u} V)\n                  (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} V) (@Set.instBooleanAlgebra.{u} V)))))))\n        (@HeytingAlgebra.toOrderBot.{u} (Set.{u} V)\n          (@BiheytingAlgebra.toHeytingAlgebra.{u} (Set.{u} V)\n            (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} V) (@Set.instBooleanAlgebra.{u} V))))\n        (@SimpleGraph.commonNeighbors.{u} V G u v) (@SimpleGraph.commonNeighbors.{u} V H u v))\n    (@Disjoint.{u} (SimpleGraph.{u} V) (@SimpleGraph.instPartialOrder.{u} V)\n      (@HeytingAlgebra.toOrderBot.{u} (SimpleGraph.{u} V)\n        (@Order.Frame.toHeytingAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteDistribLattice.toFrame.{u} (SimpleGraph.{u} V)\n            (@CompleteBooleanAlgebra.toCompleteDistribLattice.{u} (SimpleGraph.{u} V)\n              (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n                (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n      G H)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-1f4eda9f12fad633b324c13919dade0d9fa42fc8710d496dfcc381475a836011","qualified_name":"SimpleGraph.disjoint_edgeSet","statement":"∀ {V : Type u} {G₁ G₂ : SimpleGraph.{u} V},\n  Iff\n    (@Disjoint.{u} (Set.{u} (Sym2.{u} V))\n      (@SemilatticeInf.toPartialOrder.{u} (Set.{u} (Sym2.{u} V))\n        (@Lattice.toSemilatticeInf.{u} (Set.{u} (Sym2.{u} V))\n          (@GeneralizedCoheytingAlgebra.toLattice.{u} (Set.{u} (Sym2.{u} V))\n            (@CoheytingAlgebra.toGeneralizedCoheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n              (@BiheytingAlgebra.toCoheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                  (@Set.instBooleanAlgebra.{u} (Sym2.{u} V))))))))\n      (@HeytingAlgebra.toOrderBot.{u} (Set.{u} (Sym2.{u} V))\n        (@BiheytingAlgebra.toHeytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n          (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} (Sym2.{u} V)) (@Set.instBooleanAlgebra.{u} (Sym2.{u} V)))))\n      (@SimpleGraph.edgeSet.{u} V G₁) (@SimpleGraph.edgeSet.{u} V G₂))\n    (@Disjoint.{u} (SimpleGraph.{u} V) (@SimpleGraph.instPartialOrder.{u} V)\n      (@HeytingAlgebra.toOrderBot.{u} (SimpleGraph.{u} V)\n        (@Order.Frame.toHeytingAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteDistribLattice.toFrame.{u} (SimpleGraph.{u} V)\n            (@CompleteBooleanAlgebra.toCompleteDistribLattice.{u} (SimpleGraph.{u} V)\n              (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n                (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n      G₁ G₂)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-f661744f53ff84c234ade42951e4fc90213307a1235983e62e62f2faf6922557","qualified_name":"SimpleGraph.disjoint_fromEdgeSet","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (s : Set.{u} (Sym2.{u} V)),\n  Iff\n    (@Disjoint.{u} (SimpleGraph.{u} V) (@SimpleGraph.instPartialOrder.{u} V)\n      (@HeytingAlgebra.toOrderBot.{u} (SimpleGraph.{u} V)\n        (@Order.Frame.toHeytingAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteDistribLattice.toFrame.{u} (SimpleGraph.{u} V)\n            (@CompleteBooleanAlgebra.toCompleteDistribLattice.{u} (SimpleGraph.{u} V)\n              (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n                (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n      G (@SimpleGraph.fromEdgeSet.{u} V s))\n    (@Disjoint.{u} (Set.{u} (Sym2.{u} V))\n      (@SemilatticeInf.toPartialOrder.{u} (Set.{u} (Sym2.{u} V))\n        (@Lattice.toSemilatticeInf.{u} (Set.{u} (Sym2.{u} V))\n          (@GeneralizedCoheytingAlgebra.toLattice.{u} (Set.{u} (Sym2.{u} V))\n            (@CoheytingAlgebra.toGeneralizedCoheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n              (@BiheytingAlgebra.toCoheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                  (@Set.instBooleanAlgebra.{u} (Sym2.{u} V))))))))\n      (@HeytingAlgebra.toOrderBot.{u} (Set.{u} (Sym2.{u} V))\n        (@BiheytingAlgebra.toHeytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n          (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} (Sym2.{u} V)) (@Set.instBooleanAlgebra.{u} (Sym2.{u} V)))))\n      (@SimpleGraph.edgeSet.{u} V G) s)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-81dfc28ceb2084398ae82a45340da0379e327a21e154e48f1dd1b92da534ce36","qualified_name":"SimpleGraph.disjoint_incidenceSet","statement":"∀ {V : Type u} {G H : SimpleGraph.{u} V},\n  Iff\n    (∀ (v : V),\n      @Disjoint.{u} (Set.{u} (Sym2.{u} V))\n        (@SemilatticeInf.toPartialOrder.{u} (Set.{u} (Sym2.{u} V))\n          (@Lattice.toSemilatticeInf.{u} (Set.{u} (Sym2.{u} V))\n            (@GeneralizedCoheytingAlgebra.toLattice.{u} (Set.{u} (Sym2.{u} V))\n              (@CoheytingAlgebra.toGeneralizedCoheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                (@BiheytingAlgebra.toCoheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                  (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                    (@Set.instBooleanAlgebra.{u} (Sym2.{u} V))))))))\n        (@HeytingAlgebra.toOrderBot.{u} (Set.{u} (Sym2.{u} V))\n          (@BiheytingAlgebra.toHeytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n            (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} (Sym2.{u} V)) (@Set.instBooleanAlgebra.{u} (Sym2.{u} V)))))\n        (@SimpleGraph.incidenceSet.{u} V G v) (@SimpleGraph.incidenceSet.{u} V H v))\n    (@Disjoint.{u} (SimpleGraph.{u} V) (@SimpleGraph.instPartialOrder.{u} V)\n      (@HeytingAlgebra.toOrderBot.{u} (SimpleGraph.{u} V)\n        (@Order.Frame.toHeytingAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteDistribLattice.toFrame.{u} (SimpleGraph.{u} V)\n            (@CompleteBooleanAlgebra.toCompleteDistribLattice.{u} (SimpleGraph.{u} V)\n              (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n                (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n      G H)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-c3903566fb58f568638e1e6ae40052c44052f6117dcfd89941aa3b59a81f5d24","qualified_name":"SimpleGraph.disjoint_left","statement":"∀ {V : Type u} {G H : SimpleGraph.{u} V},\n  Iff\n    (@Disjoint.{u} (SimpleGraph.{u} V) (@SimpleGraph.instPartialOrder.{u} V)\n      (@HeytingAlgebra.toOrderBot.{u} (SimpleGraph.{u} V)\n        (@Order.Frame.toHeytingAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteDistribLattice.toFrame.{u} (SimpleGraph.{u} V)\n            (@CompleteBooleanAlgebra.toCompleteDistribLattice.{u} (SimpleGraph.{u} V)\n              (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n                (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n      G H)\n    (∀ (x y : V), @SimpleGraph.Adj.{u} V G x y → Not (@SimpleGraph.Adj.{u} V H x y))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-62ab55c941c5281d74aefc2e249e67aa8276108da5d682beeb2e759f1c977d20","qualified_name":"SimpleGraph.disjoint_neighborSet","statement":"∀ {V : Type u} {G H : SimpleGraph.{u} V},\n  Iff\n    (∀ (v : V),\n      @Disjoint.{u} (Set.{u} V)\n        (@SemilatticeInf.toPartialOrder.{u} (Set.{u} V)\n          (@Lattice.toSemilatticeInf.{u} (Set.{u} V)\n            (@GeneralizedCoheytingAlgebra.toLattice.{u} (Set.{u} V)\n              (@CoheytingAlgebra.toGeneralizedCoheytingAlgebra.{u} (Set.{u} V)\n                (@BiheytingAlgebra.toCoheytingAlgebra.{u} (Set.{u} V)\n                  (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} V) (@Set.instBooleanAlgebra.{u} V)))))))\n        (@HeytingAlgebra.toOrderBot.{u} (Set.{u} V)\n          (@BiheytingAlgebra.toHeytingAlgebra.{u} (Set.{u} V)\n            (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} V) (@Set.instBooleanAlgebra.{u} V))))\n        (@SimpleGraph.neighborSet.{u} V G v) (@SimpleGraph.neighborSet.{u} V H v))\n    (@Disjoint.{u} (SimpleGraph.{u} V) (@SimpleGraph.instPartialOrder.{u} V)\n      (@HeytingAlgebra.toOrderBot.{u} (SimpleGraph.{u} V)\n        (@Order.Frame.toHeytingAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteDistribLattice.toFrame.{u} (SimpleGraph.{u} V)\n            (@CompleteBooleanAlgebra.toCompleteDistribLattice.{u} (SimpleGraph.{u} V)\n              (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n                (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n      G H)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-7476237a2d3273b18eee804e9ec0861b5a39ef9a586a9613265e0037d99741e6","qualified_name":"SimpleGraph.disjoint_of_disjoint_support","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} (H : SimpleGraph.{u} V),\n  @Disjoint.{u} (Set.{u} V)\n      (@SemilatticeInf.toPartialOrder.{u} (Set.{u} V)\n        (@Lattice.toSemilatticeInf.{u} (Set.{u} V)\n          (@GeneralizedCoheytingAlgebra.toLattice.{u} (Set.{u} V)\n            (@CoheytingAlgebra.toGeneralizedCoheytingAlgebra.{u} (Set.{u} V)\n              (@BiheytingAlgebra.toCoheytingAlgebra.{u} (Set.{u} V)\n                (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} V) (@Set.instBooleanAlgebra.{u} V)))))))\n      (@HeytingAlgebra.toOrderBot.{u} (Set.{u} V)\n        (@BiheytingAlgebra.toHeytingAlgebra.{u} (Set.{u} V)\n          (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} V) (@Set.instBooleanAlgebra.{u} V))))\n      (@SimpleGraph.support.{u} V G) (@SimpleGraph.support.{u} V H) →\n    @Disjoint.{u} (SimpleGraph.{u} V) (@SimpleGraph.instPartialOrder.{u} V)\n      (@HeytingAlgebra.toOrderBot.{u} (SimpleGraph.{u} V)\n        (@Order.Frame.toHeytingAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteDistribLattice.toFrame.{u} (SimpleGraph.{u} V)\n            (@CompleteBooleanAlgebra.toCompleteDistribLattice.{u} (SimpleGraph.{u} V)\n              (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n                (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n      G H"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-890eacf97a31b7d3029a58cfaa8819b7031a57e7896ed7c7ddfff21c27796281","qualified_name":"SimpleGraph.distribLattice","statement":"{V : Type u} → DistribLattice.{u} (SimpleGraph.{u} V)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-2120f02e56b010fe9e0e16416e4528f9e1a45c9e55a0a19e9acbbd267e23f6b5","qualified_name":"SimpleGraph.edgeSet","statement":"{V : Type u} → SimpleGraph.{u} V → Set.{u} (Sym2.{u} V)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-092aad12f23886840e46ffaf977669de427cb54f412130c36657cf084413d739","qualified_name":"SimpleGraph.edgeSetEmbedding","statement":"(V : Type u_2) →\n  @OrderEmbedding.{u_2, u_2} (SimpleGraph.{u_2} V) (Set.{u_2} (Sym2.{u_2} V)) (@SimpleGraph.instLE.{u_2} V)\n    (@Set.instLE.{u_2} (Sym2.{u_2} V))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-baed087317dff40392be179cc8eca2bd86edc7876d8e0482ba313d9b8cadec53","qualified_name":"SimpleGraph.edgeSet_bot","statement":"∀ {V : Type u},\n  @Eq.{u + 1} (Set.{u} (Sym2.{u} V))\n    (@SimpleGraph.edgeSet.{u} V\n      (@Bot.bot.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n    (@EmptyCollection.emptyCollection.{u} (Set.{u} (Sym2.{u} V)) (@Set.instEmptyCollection.{u} (Sym2.{u} V)))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-340e3aa59678a7d9058d1662bf6e7fac6c4c9a372d9499bc1c095b36c69ef56b","qualified_name":"SimpleGraph.edgeSet_eq_empty","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V},\n  Iff\n    (@Eq.{u + 1} (Set.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V G)\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} (Sym2.{u} V)) (@Set.instEmptyCollection.{u} (Sym2.{u} V))))\n    (@Eq.{u + 1} (SimpleGraph.{u} V) G\n      (@Bot.bot.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-6faf1c7179c01ce95bb6f2721fa943e029ed75cf99220d80604155be949f7c47","qualified_name":"SimpleGraph.edgeSet_eq_iff","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (s : Set.{u} (Sym2.{u} V)),\n  Iff (@Eq.{u + 1} (Set.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V G) s)\n    (And (@Eq.{u + 1} (SimpleGraph.{u} V) G (@SimpleGraph.fromEdgeSet.{u} V s))\n      (@Disjoint.{u} (Set.{u} (Sym2.{u} V))\n        (@SemilatticeInf.toPartialOrder.{u} (Set.{u} (Sym2.{u} V))\n          (@Lattice.toSemilatticeInf.{u} (Set.{u} (Sym2.{u} V))\n            (@GeneralizedCoheytingAlgebra.toLattice.{u} (Set.{u} (Sym2.{u} V))\n              (@CoheytingAlgebra.toGeneralizedCoheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                (@BiheytingAlgebra.toCoheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                  (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                    (@Set.instBooleanAlgebra.{u} (Sym2.{u} V))))))))\n        (@HeytingAlgebra.toOrderBot.{u} (Set.{u} (Sym2.{u} V))\n          (@BiheytingAlgebra.toHeytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n            (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} (Sym2.{u} V)) (@Set.instBooleanAlgebra.{u} (Sym2.{u} V)))))\n        s (@Sym2.diagSet.{u} V)))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-a4ea7663f5b74ad3b8683f0cd7f0a073ce334bfddccf2ed7698803790dceb0c0","qualified_name":"SimpleGraph.edgeSet_fromEdgeSet","statement":"∀ {V : Type u} (s : Set.{u} (Sym2.{u} V)),\n  @Eq.{u + 1} (Set.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V (@SimpleGraph.fromEdgeSet.{u} V s))\n    (@SDiff.sdiff.{u} (Set.{u} (Sym2.{u} V)) (@Set.instSDiff.{u} (Sym2.{u} V)) s (@Sym2.diagSet.{u} V))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-097f0fb93870f0910ce11feb2bf17f653a465c756635169cf1e24a629ca0f345","qualified_name":"SimpleGraph.edgeSet_iInf","statement":"∀ {V : Type u} {ι : Sort u_2} [Nonempty.{u_2} ι] {f : ι → SimpleGraph.{u} V},\n  @Eq.{u + 1} (Set.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V (⨅ i, f i)) (⋂ i, @SimpleGraph.edgeSet.{u} V (f i))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-ca81089de1f2fb23b80d4766d87fd7204a1ac204998f693f3c8eb2be3daaff1a","qualified_name":"SimpleGraph.edgeSet_iSup","statement":"∀ {V : Type u} {ι : Sort u_2} {f : ι → SimpleGraph.{u} V},\n  @Eq.{u + 1} (Set.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V (⨆ i, f i)) (⋃ i, @SimpleGraph.edgeSet.{u} V (f i))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-53c282b525394045387a5adb01883ee61c4f12b6927ae18ac75556d4614e3a7f","qualified_name":"SimpleGraph.edgeSet_inf","statement":"∀ {V : Type u} (G₁ G₂ : SimpleGraph.{u} V),\n  @Eq.{u + 1} (Set.{u} (Sym2.{u} V))\n    (@SimpleGraph.edgeSet.{u} V (@Min.min.{u} (SimpleGraph.{u} V) (@SimpleGraph.instMin.{u} V) G₁ G₂))\n    (@Inter.inter.{u} (Set.{u} (Sym2.{u} V)) (@Set.instInter.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V G₁)\n      (@SimpleGraph.edgeSet.{u} V G₂))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-be0ffe87477cb71848adaa3fd111e1004e5ea35e31ebaa7f831be6c9c21b9067","qualified_name":"SimpleGraph.edgeSet_inj","statement":"∀ {V : Type u} {G₁ G₂ : SimpleGraph.{u} V},\n  Iff (@Eq.{u + 1} (Set.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V G₁) (@SimpleGraph.edgeSet.{u} V G₂))\n    (@Eq.{u + 1} (SimpleGraph.{u} V) G₁ G₂)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-ea643df17a91a4bb1bb0dc0266e6208a4494a5477ca2406257e3015d08f08c80","qualified_name":"SimpleGraph.edgeSet_injective","statement":"∀ {V : Type u},\n  @Function.Injective.{u + 1, u + 1} (SimpleGraph.{u} V) (Set.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-8392a150d76f8d77ec8a8cda6a4f73a6f0269ef66033300e8c302c514b3cee43","qualified_name":"SimpleGraph.edgeSet_mono","statement":"∀ {V : Type u} {G₁ G₂ : SimpleGraph.{u} V},\n  @LE.le.{u} (SimpleGraph.{u} V) (@SimpleGraph.instLE.{u} V) G₁ G₂ →\n    @LE.le.{u} (Set.{u} (Sym2.{u} V)) (@Set.instLE.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V G₁)\n      (@SimpleGraph.edgeSet.{u} V G₂)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-336f063a7ca3b1550caf076384a0195e50cecd24b2ae26a1e65f02c23b74e153","qualified_name":"SimpleGraph.edgeSet_nonempty","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V},\n  Iff (@Set.Nonempty.{u} (Sym2.{u} V) (@SimpleGraph.edgeSet.{u} V G))\n    (@Ne.{u + 1} (SimpleGraph.{u} V) G\n      (@Bot.bot.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-fe1f2e6e41b58891e12a0a9e0c91abf855c38c9d9bcee0aa58dfe48e7e4966a5","qualified_name":"SimpleGraph.edgeSet_sInf","statement":"∀ {V : Type u} {s : Set.{u} (SimpleGraph.{u} V)},\n  @Set.Nonempty.{u} (SimpleGraph.{u} V) s →\n    @Eq.{u + 1} (Set.{u} (Sym2.{u} V))\n      (@SimpleGraph.edgeSet.{u} V (@InfSet.sInf.{u} (SimpleGraph.{u} V) (@SimpleGraph.infSet.{u} V) s))\n      (@Set.sInter.{u} (Sym2.{u} V)\n        (@Set.image.{u, u} (SimpleGraph.{u} V) (Set.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V) s))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-9a6d9623950cb839994f1eb475da7abe797b53931a2fc0c20bb2f854e44ab232","qualified_name":"SimpleGraph.edgeSet_sSup","statement":"∀ {V : Type u} {s : Set.{u} (SimpleGraph.{u} V)},\n  @Eq.{u + 1} (Set.{u} (Sym2.{u} V))\n    (@SimpleGraph.edgeSet.{u} V (@SupSet.sSup.{u} (SimpleGraph.{u} V) (@SimpleGraph.supSet.{u} V) s))\n    (@Set.sUnion.{u} (Sym2.{u} V)\n      (@Set.image.{u, u} (SimpleGraph.{u} V) (Set.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V) s))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-3bd1d67d80852b43c7ae8a3239a61b6bd82355e307b65d8fb27c82ea150870f1","qualified_name":"SimpleGraph.edgeSet_sdiff","statement":"∀ {V : Type u} (G₁ G₂ : SimpleGraph.{u} V),\n  @Eq.{u + 1} (Set.{u} (Sym2.{u} V))\n    (@SimpleGraph.edgeSet.{u} V (@SDiff.sdiff.{u} (SimpleGraph.{u} V) (@SimpleGraph.sdiff.{u} V) G₁ G₂))\n    (@SDiff.sdiff.{u} (Set.{u} (Sym2.{u} V)) (@Set.instSDiff.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V G₁)\n      (@SimpleGraph.edgeSet.{u} V G₂))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-f3c9715bb2cd3afeda6b57600f051c09a8d503a749bd14b6749146ffb7c9739c","qualified_name":"SimpleGraph.edgeSet_sdiff_sdiff_isDiag","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (s : Set.{u} (Sym2.{u} V)),\n  @Eq.{u + 1} (Set.{u} (Sym2.{u} V))\n    (@SDiff.sdiff.{u} (Set.{u} (Sym2.{u} V)) (@Set.instSDiff.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V G)\n      (@SDiff.sdiff.{u} (Set.{u} (Sym2.{u} V)) (@Set.instSDiff.{u} (Sym2.{u} V)) s (@Sym2.diagSet.{u} V)))\n    (@SDiff.sdiff.{u} (Set.{u} (Sym2.{u} V)) (@Set.instSDiff.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V G) s)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-515f18870b5832be985be6852b292bbb4c5d58986017f658726dca10d89c64cb","qualified_name":"SimpleGraph.edgeSet_ssubset_edgeSet","statement":"∀ {V : Type u} {G₁ G₂ : SimpleGraph.{u} V},\n  Iff\n    (@LT.lt.{u} (Set.{u} (Sym2.{u} V))\n      (@Preorder.toLT.{u} (Set.{u} (Sym2.{u} V))\n        (@PartialOrder.toPreorder.{u} (Set.{u} (Sym2.{u} V))\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} (Sym2.{u} V))\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} (Sym2.{u} V))\n              (@GeneralizedCoheytingAlgebra.toLattice.{u} (Set.{u} (Sym2.{u} V))\n                (@CoheytingAlgebra.toGeneralizedCoheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                  (@BiheytingAlgebra.toCoheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                    (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                      (@Set.instBooleanAlgebra.{u} (Sym2.{u} V))))))))))\n      (@SimpleGraph.edgeSet.{u} V G₁) (@SimpleGraph.edgeSet.{u} V G₂))\n    (@LT.lt.{u} (SimpleGraph.{u} V)\n      (@Preorder.toLT.{u} (SimpleGraph.{u} V)\n        (@PartialOrder.toPreorder.{u} (SimpleGraph.{u} V) (@SimpleGraph.instPartialOrder.{u} V)))\n      G₁ G₂)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-8cb491c452aa46e779bf7a64ee7fc0ae8622ac2712c54c3dccec4db843fbd6b8","qualified_name":"SimpleGraph.edgeSet_strict_mono","statement":"∀ {V : Type u} {G₁ G₂ : SimpleGraph.{u} V},\n  @LT.lt.{u} (SimpleGraph.{u} V)\n      (@Preorder.toLT.{u} (SimpleGraph.{u} V)\n        (@PartialOrder.toPreorder.{u} (SimpleGraph.{u} V) (@SimpleGraph.instPartialOrder.{u} V)))\n      G₁ G₂ →\n    @LT.lt.{u} (Set.{u} (Sym2.{u} V))\n      (@Preorder.toLT.{u} (Set.{u} (Sym2.{u} V))\n        (@PartialOrder.toPreorder.{u} (Set.{u} (Sym2.{u} V))\n          (@SemilatticeInf.toPartialOrder.{u} (Set.{u} (Sym2.{u} V))\n            (@Lattice.toSemilatticeInf.{u} (Set.{u} (Sym2.{u} V))\n              (@GeneralizedCoheytingAlgebra.toLattice.{u} (Set.{u} (Sym2.{u} V))\n                (@CoheytingAlgebra.toGeneralizedCoheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                  (@BiheytingAlgebra.toCoheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                    (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                      (@Set.instBooleanAlgebra.{u} (Sym2.{u} V))))))))))\n      (@SimpleGraph.edgeSet.{u} V G₁) (@SimpleGraph.edgeSet.{u} V G₂)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-f9f9d9edeb4570e6d14c258352e1d604239b2e59510b574116ff6b834c67702c","qualified_name":"SimpleGraph.edgeSet_subset_compl_diagSet","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V),\n  @LE.le.{u} (Set.{u} (Sym2.{u} V)) (@Set.instLE.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V G)\n    (@Compl.compl.{u} (Set.{u} (Sym2.{u} V)) (@Set.instCompl.{u} (Sym2.{u} V)) (@Sym2.diagSet.{u} V))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-603164e850db8bf506ad74d44fa093521e62b8704d01d657e64f658b754bd56f","qualified_name":"SimpleGraph.edgeSet_subset_edgeSet","statement":"∀ {V : Type u} {G₁ G₂ : SimpleGraph.{u} V},\n  Iff\n    (@LE.le.{u} (Set.{u} (Sym2.{u} V)) (@Set.instLE.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V G₁)\n      (@SimpleGraph.edgeSet.{u} V G₂))\n    (@LE.le.{u} (SimpleGraph.{u} V) (@SimpleGraph.instLE.{u} V) G₁ G₂)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-c92087588a0b8fa461dbf4c1500ba469eac3ceb6bb09a80f9292d02cc30d5ee0","qualified_name":"SimpleGraph.edgeSet_subset_sym2_iff","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {s : Set.{u} V},\n  Iff\n    (@LE.le.{u} (Set.{u} (Sym2.{u} V)) (@Set.instLE.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V G)\n      (@Set.sym2.{u} V s))\n    (@LE.le.{u} (Set.{u} V) (@Set.instLE.{u} V) (@SimpleGraph.support.{u} V G) s)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-2c3c00cdb50a1b1df2a1011a17fbf5936221934caea29b6efd32baab2790af1c","qualified_name":"SimpleGraph.edgeSet_sup","statement":"∀ {V : Type u} (G₁ G₂ : SimpleGraph.{u} V),\n  @Eq.{u + 1} (Set.{u} (Sym2.{u} V))\n    (@SimpleGraph.edgeSet.{u} V (@Max.max.{u} (SimpleGraph.{u} V) (@SimpleGraph.instMax.{u} V) G₁ G₂))\n    (@Union.union.{u} (Set.{u} (Sym2.{u} V)) (@Set.instUnion.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V G₁)\n      (@SimpleGraph.edgeSet.{u} V G₂))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-2b48cab89a24d895e7c864005177d70a96a6196f0e64705c77fc95a0c09ae4fd","qualified_name":"SimpleGraph.edgeSet_top","statement":"∀ {V : Type u},\n  @Eq.{u + 1} (Set.{u} (Sym2.{u} V))\n    (@SimpleGraph.edgeSet.{u} V\n      (@Top.top.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toTop.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n    (@Compl.compl.{u} (Set.{u} (Sym2.{u} V)) (@Set.instCompl.{u} (Sym2.{u} V)) (@Sym2.diagSet.{u} V))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-0a219cac9e9ba2e704aad37c40c18036e2ae22ea46035118deb34e3e21cf84d7","qualified_name":"SimpleGraph.edge_mem_incidenceSet_iff","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {a : V} {e : @Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.edgeSet.{u} V G)},\n  Iff\n    (@Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n      (@SimpleGraph.incidenceSet.{u} V G a)\n      (@Subtype.val.{u + 1} (Sym2.{u} V)\n        (fun x =>\n          @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n            (@SimpleGraph.edgeSet.{u} V G) x)\n        e))\n    (@Membership.mem.{u, u} V (Sym2.{u} V) (@SetLike.instMembership.{u, u} (Sym2.{u} V) V (@Sym2.instSetLike.{u} V))\n      (@Subtype.val.{u + 1} (Sym2.{u} V)\n        (fun x =>\n          @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n            (@SimpleGraph.edgeSet.{u} V G) x)\n        e)\n      a)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-eedf4bb83af4be41ef8d94aa3a5f417c64e79db7a769945bd454af97ab3320a2","qualified_name":"SimpleGraph.edge_other_incident_set","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) [inst : DecidableEq.{u + 1} V] {v : V} {e : Sym2.{u} V}\n  (h :\n    @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n      (@SimpleGraph.incidenceSet.{u} V G v) e),\n  @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n    (@SimpleGraph.incidenceSet.{u} V G (@SimpleGraph.otherVertexOfIncident.{u} V G inst v e h)) e"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-180aaa41ed2ecd10ba102bfcd10ff61d0088ea8cc6f2af16e6892347ff8e17d1","qualified_name":"SimpleGraph.edge_other_ne","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {e : Sym2.{u} V},\n  @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n      (@SimpleGraph.edgeSet.{u} V G) e →\n    ∀ {v : V}\n      (h :\n        @Membership.mem.{u, u} V (Sym2.{u} V) (@SetLike.instMembership.{u, u} (Sym2.{u} V) V (@Sym2.instSetLike.{u} V))\n          e v),\n      @Ne.{u + 1} V (@Sym2.Mem.other.{u} V v e h) v"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-0733871e4367debc2394d1e1230280ab1082c2a039501028084f1d5839f7a378","qualified_name":"SimpleGraph.emptyGraph","statement":"(V : Type u) → SimpleGraph.{u} V"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-ec7697610c261891ce0ad2b9b67f5a3d4f23c1feb0720fbd9e5e9b313af888b8","qualified_name":"SimpleGraph.emptyGraph_eq_bot","statement":"∀ (V : Type u),\n  @Eq.{u + 1} (SimpleGraph.{u} V) (SimpleGraph.emptyGraph.{u} V)\n    (@Bot.bot.{u} (SimpleGraph.{u} V)\n      (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n        (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-c4079a3fecd64c19dc933d50d43abc53c9fd81fb15b0e88652026fed132d0ead","qualified_name":"SimpleGraph.eq_bot_iff_forall_not_adj","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V},\n  Iff\n    (@Eq.{u + 1} (SimpleGraph.{u} V) G\n      (@Bot.bot.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n    (∀ (a b : V), Not (@SimpleGraph.Adj.{u} V G a b))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-4b8ed9af6cbabccc589337dd8a570a884cf0dcda712f18847fdb9830ee5399cd","qualified_name":"SimpleGraph.eq_bot_iff_isIsolated","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V),\n  Iff\n    (@Eq.{u + 1} (SimpleGraph.{u} V) G\n      (@Bot.bot.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n    (∀ (v : V), @SimpleGraph.IsIsolated.{u} V G v)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-ebb7ce71c417567016f6c5ac23d7fae8019eb47f444e2aa6dc8d97548c4b1e31","qualified_name":"SimpleGraph.eq_top_iff_forall_isUniversal","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V},\n  Iff\n    (@Eq.{u + 1} (SimpleGraph.{u} V) G\n      (@Top.top.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toTop.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n    (∀ (v : V), @SimpleGraph.IsUniversal.{u} V G v)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-8595801e93ae27aa7cb913b006ce4b57ce30f33157ca55311558aa93b03def91","qualified_name":"SimpleGraph.eq_top_iff_forall_ne_adj","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V},\n  Iff\n    (@Eq.{u + 1} (SimpleGraph.{u} V) G\n      (@Top.top.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toTop.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n    (∀ (a b : V), @Ne.{u + 1} V a b → @SimpleGraph.Adj.{u} V G a b)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-69ef4ad6000d69a296a23b76772e34bb563066b9bff3a428ef71e91b483a5558","qualified_name":"SimpleGraph.exists_adj_iff_not_isIsolated","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V},\n  Iff (∃ u, @SimpleGraph.Adj.{u} V G v u) (Not (@SimpleGraph.IsIsolated.{u} V G v))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-904cafd2b9fe82298500e82c8aacf28a55e8290b820138196c636cdf1407ad0c","qualified_name":"SimpleGraph.ext","statement":"∀ {V : Type u} {x y : SimpleGraph.{u} V},\n  @Eq.{u + 1} (V → V → Prop) (@SimpleGraph.Adj.{u} V x) (@SimpleGraph.Adj.{u} V y) → @Eq.{u + 1} (SimpleGraph.{u} V) x y"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-14262e0276475d840cc0b31d2f9da98579f38285b890a5ddcfe6d62f5c495445","qualified_name":"SimpleGraph.ext_iff","statement":"∀ {V : Type u} {x y : SimpleGraph.{u} V},\n  Iff (@Eq.{u + 1} (SimpleGraph.{u} V) x y)\n    (@Eq.{u + 1} (V → V → Prop) (@SimpleGraph.Adj.{u} V x) (@SimpleGraph.Adj.{u} V y))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-32f177eeb9a7d456d8c41ee18121e0f50bf1d3df8cc1c174478483549010e85f","qualified_name":"SimpleGraph.fintypeEdgeSet","statement":"{V : Type u} →\n  (G : SimpleGraph.{u} V) →\n    [Fintype.{u} (Sym2.{u} V)] →\n      [@DecidableRel.{u + 1, u + 1} V V (@SimpleGraph.Adj.{u} V G)] →\n        Fintype.{u} (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.edgeSet.{u} V G))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-4e53289b2aeb1207c6e26a0f7841c07e0772786ed3964b24022ba5968e16aac9","qualified_name":"SimpleGraph.fintypeEdgeSetBot","statement":"{V : Type u} →\n  Fintype.{u}\n    (@Set.Elem.{u} (Sym2.{u} V)\n      (@SimpleGraph.edgeSet.{u} V\n        (@Bot.bot.{u} (SimpleGraph.{u} V)\n          (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n            (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n                (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-0782a427bc96aa42d9cbe7470bd60b2efeb6e9851fda1789e7c35393b14b0164","qualified_name":"SimpleGraph.fintypeEdgeSetInf","statement":"{V : Type u} →\n  (G₁ G₂ : SimpleGraph.{u} V) →\n    [DecidableEq.{u + 1} V] →\n      [Fintype.{u} (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.edgeSet.{u} V G₁))] →\n        [Fintype.{u} (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.edgeSet.{u} V G₂))] →\n          Fintype.{u}\n            (@Set.Elem.{u} (Sym2.{u} V)\n              (@SimpleGraph.edgeSet.{u} V (@Min.min.{u} (SimpleGraph.{u} V) (@SimpleGraph.instMin.{u} V) G₁ G₂)))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-b237982ac1977f65491a338402d5caba6924c07a211b4d9f2e92b65cc7af6848","qualified_name":"SimpleGraph.fintypeEdgeSetSdiff","statement":"{V : Type u} →\n  (G₁ G₂ : SimpleGraph.{u} V) →\n    [DecidableEq.{u + 1} V] →\n      [Fintype.{u} (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.edgeSet.{u} V G₁))] →\n        [Fintype.{u} (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.edgeSet.{u} V G₂))] →\n          Fintype.{u}\n            (@Set.Elem.{u} (Sym2.{u} V)\n              (@SimpleGraph.edgeSet.{u} V (@SDiff.sdiff.{u} (SimpleGraph.{u} V) (@SimpleGraph.sdiff.{u} V) G₁ G₂)))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-afb6e2187facd0f9b7eca00b548e04bb278f16ec78cad4253ec3d7a2dae20c7b","qualified_name":"SimpleGraph.fintypeEdgeSetSup","statement":"{V : Type u} →\n  (G₁ G₂ : SimpleGraph.{u} V) →\n    [DecidableEq.{u + 1} V] →\n      [Fintype.{u} (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.edgeSet.{u} V G₁))] →\n        [Fintype.{u} (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.edgeSet.{u} V G₂))] →\n          Fintype.{u}\n            (@Set.Elem.{u} (Sym2.{u} V)\n              (@SimpleGraph.edgeSet.{u} V (@Max.max.{u} (SimpleGraph.{u} V) (@SimpleGraph.instMax.{u} V) G₁ G₂)))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-66cf9158d9c19af7a212cd8de958b5b3ad08fc3c2a63d70538d350a86e813289","qualified_name":"SimpleGraph.fromEdgeSet","statement":"{V : Type u} → Set.{u} (Sym2.{u} V) → SimpleGraph.{u} V"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-fcda20155e4959f11b55f4b5f6f43ae3087ac69fd229456c3ed17fbc7f2b9042","qualified_name":"SimpleGraph.fromEdgeSet_adj","statement":"∀ {V : Type u} {v w : V} (s : Set.{u} (Sym2.{u} V)),\n  Iff (@SimpleGraph.Adj.{u} V (@SimpleGraph.fromEdgeSet.{u} V s) v w)\n    (And\n      (@Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V)) s\n        (@Sym2.mk.{u} V v w))\n      (@Ne.{u + 1} V v w))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-f4e1f27387dd448251f159a30791770b7b4b62b6118e7f43f38e41199dab65ce","qualified_name":"SimpleGraph.fromEdgeSet_disjoint","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (s : Set.{u} (Sym2.{u} V)),\n  Iff\n    (@Disjoint.{u} (SimpleGraph.{u} V) (@SimpleGraph.instPartialOrder.{u} V)\n      (@HeytingAlgebra.toOrderBot.{u} (SimpleGraph.{u} V)\n        (@Order.Frame.toHeytingAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteDistribLattice.toFrame.{u} (SimpleGraph.{u} V)\n            (@CompleteBooleanAlgebra.toCompleteDistribLattice.{u} (SimpleGraph.{u} V)\n              (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n                (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n      (@SimpleGraph.fromEdgeSet.{u} V s) G)\n    (@Disjoint.{u} (Set.{u} (Sym2.{u} V))\n      (@SemilatticeInf.toPartialOrder.{u} (Set.{u} (Sym2.{u} V))\n        (@Lattice.toSemilatticeInf.{u} (Set.{u} (Sym2.{u} V))\n          (@GeneralizedCoheytingAlgebra.toLattice.{u} (Set.{u} (Sym2.{u} V))\n            (@CoheytingAlgebra.toGeneralizedCoheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n              (@BiheytingAlgebra.toCoheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n                  (@Set.instBooleanAlgebra.{u} (Sym2.{u} V))))))))\n      (@HeytingAlgebra.toOrderBot.{u} (Set.{u} (Sym2.{u} V))\n        (@BiheytingAlgebra.toHeytingAlgebra.{u} (Set.{u} (Sym2.{u} V))\n          (@BooleanAlgebra.toBiheytingAlgebra.{u} (Set.{u} (Sym2.{u} V)) (@Set.instBooleanAlgebra.{u} (Sym2.{u} V)))))\n      s (@SimpleGraph.edgeSet.{u} V G))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-7c2e2ffe462ef0d5b6cae31d10a7c7206e797c95b6ce256a5b1547b12bd2e045","qualified_name":"SimpleGraph.fromEdgeSet_edgeSet","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V),\n  @Eq.{u + 1} (SimpleGraph.{u} V) (@SimpleGraph.fromEdgeSet.{u} V (@SimpleGraph.edgeSet.{u} V G)) G"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-76b924e95bca062f893a4a6c7250afda7f0f113dde9fb2af83e0db9977fd26a1","qualified_name":"SimpleGraph.fromEdgeSet_empty","statement":"∀ {V : Type u},\n  @Eq.{u + 1} (SimpleGraph.{u} V)\n    (@SimpleGraph.fromEdgeSet.{u} V\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} (Sym2.{u} V)) (@Set.instEmptyCollection.{u} (Sym2.{u} V))))\n    (@Bot.bot.{u} (SimpleGraph.{u} V)\n      (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n        (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-01740a15fede8bf895cac71d4cc64fc2f3a59880a0cdf68d3a3a34d6fe8d0350","qualified_name":"SimpleGraph.fromEdgeSet_iInter","statement":"∀ {V : Type u} {ι : Sort u_2} {f : ι → Set.{u} (Sym2.{u} V)},\n  @Eq.{u + 1} (SimpleGraph.{u} V) (@SimpleGraph.fromEdgeSet.{u} V (⋂ i, f i))\n    (⨅ i, @SimpleGraph.fromEdgeSet.{u} V (f i))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-c941f1a9c88f6b9a3c998362269c75f55c10dd7d11d5b5a07045c82d5839c9fd","qualified_name":"SimpleGraph.fromEdgeSet_iUnion","statement":"∀ {V : Type u} {ι : Sort u_2} {f : ι → Set.{u} (Sym2.{u} V)},\n  @Eq.{u + 1} (SimpleGraph.{u} V) (@SimpleGraph.fromEdgeSet.{u} V (⋃ i, f i))\n    (⨆ i, @SimpleGraph.fromEdgeSet.{u} V (f i))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-8790f671bcbb18107291382eeccba639d0a32bae20accdf68a21bb78bbbaa615","qualified_name":"SimpleGraph.fromEdgeSet_inter","statement":"∀ {V : Type u} (s t : Set.{u} (Sym2.{u} V)),\n  @Eq.{u + 1} (SimpleGraph.{u} V)\n    (@SimpleGraph.fromEdgeSet.{u} V (@Inter.inter.{u} (Set.{u} (Sym2.{u} V)) (@Set.instInter.{u} (Sym2.{u} V)) s t))\n    (@Min.min.{u} (SimpleGraph.{u} V) (@SimpleGraph.instMin.{u} V) (@SimpleGraph.fromEdgeSet.{u} V s)\n      (@SimpleGraph.fromEdgeSet.{u} V t))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-082a8c1b0d46f03667ed82d3cc16bbf642547dc0329402574bc897bce9fd9381","qualified_name":"SimpleGraph.fromEdgeSet_le","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {s : Set.{u} (Sym2.{u} V)},\n  Iff (@LE.le.{u} (SimpleGraph.{u} V) (@SimpleGraph.instLE.{u} V) (@SimpleGraph.fromEdgeSet.{u} V s) G)\n    (@LE.le.{u} (Set.{u} (Sym2.{u} V)) (@Set.instLE.{u} (Sym2.{u} V))\n      (@SDiff.sdiff.{u} (Set.{u} (Sym2.{u} V)) (@Set.instSDiff.{u} (Sym2.{u} V)) s (@Sym2.diagSet.{u} V))\n      (@SimpleGraph.edgeSet.{u} V G))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-a349e4f7cb8c64d3238cb82083ee26cb64e7b428e5c8c7f5eb45e3a5829b9d27","qualified_name":"SimpleGraph.fromEdgeSet_mono","statement":"∀ {V : Type u} {s t : Set.{u} (Sym2.{u} V)},\n  @LE.le.{u} (Set.{u} (Sym2.{u} V)) (@Set.instLE.{u} (Sym2.{u} V)) s t →\n    @LE.le.{u} (SimpleGraph.{u} V) (@SimpleGraph.instLE.{u} V) (@SimpleGraph.fromEdgeSet.{u} V s)\n      (@SimpleGraph.fromEdgeSet.{u} V t)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-5b6af81809de29e3b4c72de82c189906b5ccd4e06181ede2d6d24fbf4da6ad22","qualified_name":"SimpleGraph.fromEdgeSet_not_isDiag","statement":"∀ {V : Type u},\n  @Eq.{u + 1} (SimpleGraph.{u} V)\n    (@SimpleGraph.fromEdgeSet.{u} V\n      (@Compl.compl.{u} (Set.{u} (Sym2.{u} V)) (@Set.instCompl.{u} (Sym2.{u} V)) (@Sym2.diagSet.{u} V)))\n    (@Top.top.{u} (SimpleGraph.{u} V)\n      (@BooleanAlgebra.toTop.{u} (SimpleGraph.{u} V)\n        (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-26ef57a30cd00e7caab4366e91faca5660683f8c650f41855d887552c9eec653","qualified_name":"SimpleGraph.fromEdgeSet_sInter","statement":"∀ {V : Type u} {s : Set.{u} (Set.{u} (Sym2.{u} V))},\n  @Eq.{u + 1} (SimpleGraph.{u} V) (@SimpleGraph.fromEdgeSet.{u} V (@Set.sInter.{u} (Sym2.{u} V) s))\n    (@InfSet.sInf.{u} (SimpleGraph.{u} V) (@SimpleGraph.infSet.{u} V)\n      (@Set.image.{u, u} (Set.{u} (Sym2.{u} V)) (SimpleGraph.{u} V) (@SimpleGraph.fromEdgeSet.{u} V) s))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-39a7edde3760df8931703c4dfa2c9725ed7ea455c0a40fd8231eff176da967e7","qualified_name":"SimpleGraph.fromEdgeSet_sUnion","statement":"∀ {V : Type u} {s : Set.{u} (Set.{u} (Sym2.{u} V))},\n  @Eq.{u + 1} (SimpleGraph.{u} V) (@SimpleGraph.fromEdgeSet.{u} V (@Set.sUnion.{u} (Sym2.{u} V) s))\n    (@SupSet.sSup.{u} (SimpleGraph.{u} V) (@SimpleGraph.supSet.{u} V)\n      (@Set.image.{u, u} (Set.{u} (Sym2.{u} V)) (SimpleGraph.{u} V) (@SimpleGraph.fromEdgeSet.{u} V) s))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-8220e30eb0015c3d0160a0e56c75a8a7cc37165ea95a3caac366172c51badc89","qualified_name":"SimpleGraph.fromEdgeSet_sdiff","statement":"∀ {V : Type u} (s t : Set.{u} (Sym2.{u} V)),\n  @Eq.{u + 1} (SimpleGraph.{u} V)\n    (@SimpleGraph.fromEdgeSet.{u} V (@SDiff.sdiff.{u} (Set.{u} (Sym2.{u} V)) (@Set.instSDiff.{u} (Sym2.{u} V)) s t))\n    (@SDiff.sdiff.{u} (SimpleGraph.{u} V) (@SimpleGraph.sdiff.{u} V) (@SimpleGraph.fromEdgeSet.{u} V s)\n      (@SimpleGraph.fromEdgeSet.{u} V t))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-a9155a92abee2e3a0fcedee97f39344f688e637b656c10ca19968c1dc031eb86","qualified_name":"SimpleGraph.fromEdgeSet_union","statement":"∀ {V : Type u} (s t : Set.{u} (Sym2.{u} V)),\n  @Eq.{u + 1} (SimpleGraph.{u} V)\n    (@SimpleGraph.fromEdgeSet.{u} V (@Union.union.{u} (Set.{u} (Sym2.{u} V)) (@Set.instUnion.{u} (Sym2.{u} V)) s t))\n    (@Max.max.{u} (SimpleGraph.{u} V) (@SimpleGraph.instMax.{u} V) (@SimpleGraph.fromEdgeSet.{u} V s)\n      (@SimpleGraph.fromEdgeSet.{u} V t))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-f4ca72390fb04ccfd8c5d28c5a85c9eda40a1465fe3ee9a60bbf1f7bdd153136","qualified_name":"SimpleGraph.fromEdgeSet_univ","statement":"∀ {V : Type u},\n  @Eq.{u + 1} (SimpleGraph.{u} V) (@SimpleGraph.fromEdgeSet.{u} V (@Set.univ.{u} (Sym2.{u} V)))\n    (@Top.top.{u} (SimpleGraph.{u} V)\n      (@BooleanAlgebra.toTop.{u} (SimpleGraph.{u} V)\n        (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-fae403be2c470848d4385dce9c0aa074b85657d2be18bbf5acb8760ad10761ca","qualified_name":"SimpleGraph.fromRel","statement":"{V : Type u} → (V → V → Prop) → SimpleGraph.{u} V"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-80a063960de7964254f9e20d55c0947617b37c68efe725251deffbcbe59d640c","qualified_name":"SimpleGraph.fromRel_adj","statement":"∀ {V : Type u} (r : V → V → Prop) (v w : V),\n  Iff (@SimpleGraph.Adj.{u} V (@SimpleGraph.fromRel.{u} V r) v w) (And (@Ne.{u + 1} V v w) (Or (r v w) (r w v)))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-967bc988c0cb529f67aa33be2d9eadaefc17e718ec29499c976927920f8a8c59","qualified_name":"SimpleGraph.iInf_adj","statement":"∀ {ι : Sort u_1} {V : Type u} {a b : V} {f : ι → SimpleGraph.{u} V},\n  Iff (@SimpleGraph.Adj.{u} V (⨅ i, f i) a b) (And (∀ (i : ι), @SimpleGraph.Adj.{u} V (f i) a b) (@Ne.{u + 1} V a b))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-85d1911ea7e115fb09a5ad46e40d8143fc4d6ae4d8bcbb995b44fd4fe215af69","qualified_name":"SimpleGraph.iInf_adj_of_nonempty","statement":"∀ {ι : Sort u_1} {V : Type u} {a b : V} [Nonempty.{u_1} ι] {f : ι → SimpleGraph.{u} V},\n  Iff (@SimpleGraph.Adj.{u} V (⨅ i, f i) a b) (∀ (i : ι), @SimpleGraph.Adj.{u} V (f i) a b)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-d53104beb72c80358731c657fa4422d75d645267501bf532a559d253e5f4fb37","qualified_name":"SimpleGraph.iSup_adj","statement":"∀ {ι : Sort u_1} {V : Type u} {a b : V} {f : ι → SimpleGraph.{u} V},\n  Iff (@SimpleGraph.Adj.{u} V (⨆ i, f i) a b) (∃ i, @SimpleGraph.Adj.{u} V (f i) a b)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-02c97e68cab2700799cbd144b3b169bfb32d3819986f5a10acc89842f7ff235c","qualified_name":"SimpleGraph.iUnion_incidenceSet","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V),\n  @Eq.{u + 1} (Set.{u} (Sym2.{u} V)) (⋃ v, @SimpleGraph.incidenceSet.{u} V G v) (@SimpleGraph.edgeSet.{u} V G)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-f4ec206a7a2b0379c23623c33c85eca03ed19f0f3ad47786ea724d2432e74a9e","qualified_name":"SimpleGraph.incidenceSet","statement":"{V : Type u} → SimpleGraph.{u} V → V → Set.{u} (Sym2.{u} V)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-fdc20904b223835140ddbc58b887ca2adade61586e24a3034c8cb240147d9c7c","qualified_name":"SimpleGraph.incidenceSetEquivNeighborSet","statement":"{V : Type u} →\n  (G : SimpleGraph.{u} V) →\n    [DecidableEq.{u + 1} V] →\n      (v : V) →\n        Equiv.{u + 1, u + 1} (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.incidenceSet.{u} V G v))\n          (@Set.Elem.{u} V (@SimpleGraph.neighborSet.{u} V G v))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-a6bde34a0a60546058da803995473878fe4321459aefd00698692ddbeab6f40a","qualified_name":"SimpleGraph.incidenceSetEquivNeighborSet_apply_coe","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) [inst : DecidableEq.{u + 1} V] (v : V)\n  (e : @Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.incidenceSet.{u} V G v)),\n  @Eq.{u + 1} V\n    (@Subtype.val.{u + 1} V\n      (fun x => @Membership.mem.{u, u} V (Set.{u} V) (@Set.instMembership.{u} V) (@SimpleGraph.neighborSet.{u} V G v) x)\n      (@DFunLike.coe.{u + 1, u + 1, u + 1}\n        (Equiv.{u + 1, u + 1} (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.incidenceSet.{u} V G v))\n          (@Set.Elem.{u} V (@SimpleGraph.neighborSet.{u} V G v)))\n        (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.incidenceSet.{u} V G v))\n        (fun x => @Set.Elem.{u} V (@SimpleGraph.neighborSet.{u} V G v))\n        (@EquivLike.toFunLike.{u + 1, u + 1, u + 1}\n          (Equiv.{u + 1, u + 1} (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.incidenceSet.{u} V G v))\n            (@Set.Elem.{u} V (@SimpleGraph.neighborSet.{u} V G v)))\n          (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.incidenceSet.{u} V G v))\n          (@Set.Elem.{u} V (@SimpleGraph.neighborSet.{u} V G v))\n          (@Equiv.instEquivLike.{u + 1, u + 1} (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.incidenceSet.{u} V G v))\n            (@Set.Elem.{u} V (@SimpleGraph.neighborSet.{u} V G v))))\n        (@SimpleGraph.incidenceSetEquivNeighborSet.{u} V G inst v) e))\n    (@SimpleGraph.otherVertexOfIncident.{u} V G inst v\n      (@Subtype.val.{u + 1} (Sym2.{u} V)\n        (fun x =>\n          @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n            (@SimpleGraph.incidenceSet.{u} V G v) x)\n        e)\n      ⋯)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-d568702f7d5528ffe5b1900d0f10848fa3bf910f52360a132a60130501d60195","qualified_name":"SimpleGraph.incidenceSetEquivNeighborSet_symm_apply_coe","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) [inst : DecidableEq.{u + 1} V] (v : V)\n  (w : @Set.Elem.{u} V (@SimpleGraph.neighborSet.{u} V G v)),\n  @Eq.{u + 1} (Sym2.{u} V)\n    (@Subtype.val.{u + 1} (Sym2.{u} V)\n      (fun x =>\n        @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n          (@SimpleGraph.incidenceSet.{u} V G v) x)\n      (@DFunLike.coe.{u + 1, u + 1, u + 1}\n        (Equiv.{u + 1, u + 1} (@Set.Elem.{u} V (@SimpleGraph.neighborSet.{u} V G v))\n          (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.incidenceSet.{u} V G v)))\n        (@Set.Elem.{u} V (@SimpleGraph.neighborSet.{u} V G v))\n        (fun x => @Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.incidenceSet.{u} V G v))\n        (@EquivLike.toFunLike.{u + 1, u + 1, u + 1}\n          (Equiv.{u + 1, u + 1} (@Set.Elem.{u} V (@SimpleGraph.neighborSet.{u} V G v))\n            (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.incidenceSet.{u} V G v)))\n          (@Set.Elem.{u} V (@SimpleGraph.neighborSet.{u} V G v))\n          (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.incidenceSet.{u} V G v))\n          (@Equiv.instEquivLike.{u + 1, u + 1} (@Set.Elem.{u} V (@SimpleGraph.neighborSet.{u} V G v))\n            (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.incidenceSet.{u} V G v))))\n        (@Equiv.symm.{u + 1, u + 1} (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.incidenceSet.{u} V G v))\n          (@Set.Elem.{u} V (@SimpleGraph.neighborSet.{u} V G v))\n          (@SimpleGraph.incidenceSetEquivNeighborSet.{u} V G inst v))\n        w))\n    (@Sym2.mk.{u} V v\n      (@Subtype.val.{u + 1} V\n        (fun x =>\n          @Membership.mem.{u, u} V (Set.{u} V) (@Set.instMembership.{u} V) (@SimpleGraph.neighborSet.{u} V G v) x)\n        w))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-6ba109efe35c9bddd729152eecf7c066bf017207b2edaf0feecd9e3a6a7a2956","qualified_name":"SimpleGraph.incidenceSet_inter_incidenceSet_of_adj","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {a b : V},\n  @SimpleGraph.Adj.{u} V G a b →\n    @Eq.{u + 1} (Set.{u} (Sym2.{u} V))\n      (@Inter.inter.{u} (Set.{u} (Sym2.{u} V)) (@Set.instInter.{u} (Sym2.{u} V)) (@SimpleGraph.incidenceSet.{u} V G a)\n        (@SimpleGraph.incidenceSet.{u} V G b))\n      (@Singleton.singleton.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instSingletonSet.{u} (Sym2.{u} V))\n        (@Sym2.mk.{u} V a b))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-10c25614bf0999245e91da4855117f637ddb60c392409c366d0eda10bd6be19a","qualified_name":"SimpleGraph.incidenceSet_inter_incidenceSet_of_not_adj","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {a b : V},\n  Not (@SimpleGraph.Adj.{u} V G a b) →\n    @Ne.{u + 1} V a b →\n      @Eq.{u + 1} (Set.{u} (Sym2.{u} V))\n        (@Inter.inter.{u} (Set.{u} (Sym2.{u} V)) (@Set.instInter.{u} (Sym2.{u} V)) (@SimpleGraph.incidenceSet.{u} V G a)\n          (@SimpleGraph.incidenceSet.{u} V G b))\n        (@EmptyCollection.emptyCollection.{u} (Set.{u} (Sym2.{u} V)) (@Set.instEmptyCollection.{u} (Sym2.{u} V)))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-2eec2d2489c051dda0b4d5e73c0c671ab29b33def6ac7ac08d2a0192570381eb","qualified_name":"SimpleGraph.incidenceSet_inter_incidenceSet_subset","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {a b : V},\n  @Ne.{u + 1} V a b →\n    @LE.le.{u} (Set.{u} (Sym2.{u} V)) (@Set.instLE.{u} (Sym2.{u} V))\n      (@Inter.inter.{u} (Set.{u} (Sym2.{u} V)) (@Set.instInter.{u} (Sym2.{u} V)) (@SimpleGraph.incidenceSet.{u} V G a)\n        (@SimpleGraph.incidenceSet.{u} V G b))\n      (@Singleton.singleton.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instSingletonSet.{u} (Sym2.{u} V))\n        (@Sym2.mk.{u} V a b))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-8cf5ae59a2cc6a8d3d7f248e2295287a600f863b1e7e19c5232389a6725b52a1","qualified_name":"SimpleGraph.incidenceSet_subset","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v : V),\n  @LE.le.{u} (Set.{u} (Sym2.{u} V)) (@Set.instLE.{u} (Sym2.{u} V)) (@SimpleGraph.incidenceSet.{u} V G v)\n    (@SimpleGraph.edgeSet.{u} V G)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-a2f2bfecfaa56933fffc31044a76dddd2c8a843736e212940e0d75402a37bd56","qualified_name":"SimpleGraph.incidence_other_neighbor_edge","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) [inst : DecidableEq.{u + 1} V] {v w : V}\n  (h : @Membership.mem.{u, u} V (Set.{u} V) (@Set.instMembership.{u} V) (@SimpleGraph.neighborSet.{u} V G v) w),\n  @Eq.{u + 1} V (@SimpleGraph.otherVertexOfIncident.{u} V G inst v (@Sym2.mk.{u} V v w) ⋯) w"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-5fb44f0dcb19a1b1b12d0087a88ce623734983e915234091a210d485f57218c8","qualified_name":"SimpleGraph.incidence_other_prop","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) [inst : DecidableEq.{u + 1} V] {v : V} {e : Sym2.{u} V}\n  (h :\n    @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n      (@SimpleGraph.incidenceSet.{u} V G v) e),\n  @Membership.mem.{u, u} V (Set.{u} V) (@Set.instMembership.{u} V) (@SimpleGraph.neighborSet.{u} V G v)\n    (@SimpleGraph.otherVertexOfIncident.{u} V G inst v e h)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-0e0a46094032dd5bcbacefc90cb59ccb0271eec07cf3ac2d02f9d629ccc7e2ba","qualified_name":"SimpleGraph.infSet","statement":"{V : Type u} → InfSet.{u} (SimpleGraph.{u} V)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-0ee6fe8a4e5904e41add9de669a4740c7c53721c7146ff3e4efbafb512c0fc11","qualified_name":"SimpleGraph.inf_adj","statement":"∀ {V : Type u} (x y : SimpleGraph.{u} V) (v w : V),\n  Iff (@SimpleGraph.Adj.{u} V (@Min.min.{u} (SimpleGraph.{u} V) (@SimpleGraph.instMin.{u} V) x y) v w)\n    (And (@SimpleGraph.Adj.{u} V x v w) (@SimpleGraph.Adj.{u} V y v w))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-8d6df033032b46d14f46fd33ac5136b74a23b0b0b31503e22b6c085a36ad644a","qualified_name":"SimpleGraph.insert_neighborSet_eq_univ","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V},\n  Iff\n    (@Eq.{u + 1} (Set.{u} V)\n      (@Insert.insert.{u, u} V (Set.{u} V) (@Set.instInsert.{u} V) v (@SimpleGraph.neighborSet.{u} V G v))\n      (@Set.univ.{u} V))\n    (@SimpleGraph.IsUniversal.{u} V G v)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-a55805d99f36a504c46580bb05e26637b54e53006dc7191624fb021258619a8c","qualified_name":"SimpleGraph.instCompl","statement":"{V : Type u} → Compl.{u} (SimpleGraph.{u} V)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-cf2c522cb246b61a79a8afbaf249131c341d2f9ed6a09488c921f7e337423b30","qualified_name":"SimpleGraph.instDecidableRelAdjFromEdgeSetOfDecidablePredSym2MemSetOfDecidableEq","statement":"{V : Type u} →\n  (s : Set.{u} (Sym2.{u} V)) →\n    [@DecidablePred.{u + 1} (Sym2.{u} V) fun x =>\n          @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V)) s x] →\n      [DecidableEq.{u + 1} V] →\n        @DecidableRel.{u + 1, u + 1} V V (@SimpleGraph.Adj.{u} V (@SimpleGraph.fromEdgeSet.{u} V s))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-88a2a83815a361b04a7ab9a577d7458aa7f8d7acf02971e9fd4c261423b8014e","qualified_name":"SimpleGraph.instFinite","statement":"∀ {V : Type u} [Finite.{u + 1} V], Finite.{u + 1} (SimpleGraph.{u} V)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-6a2920f0a8b73c789986b78c07fcb46f82121778db88a37b7ed8eb4ea46f132a","qualified_name":"SimpleGraph.instFintypeElemSym2EdgeSetFromEdgeSetOfDecidableEq","statement":"{V : Type u} →\n  (s : Set.{u} (Sym2.{u} V)) →\n    [DecidableEq.{u + 1} V] →\n      [Fintype.{u} (@Set.Elem.{u} (Sym2.{u} V) s)] →\n        Fintype.{u} (@Set.Elem.{u} (Sym2.{u} V) (@SimpleGraph.edgeSet.{u} V (@SimpleGraph.fromEdgeSet.{u} V s)))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-1234043780b5c026d9144e8c481efd5173f35dd5b03b158423816d7ed4138075","qualified_name":"SimpleGraph.instInfinite","statement":"∀ {V : Type u} [Infinite.{u + 1} V], Infinite.{u + 1} (SimpleGraph.{u} V)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-672c89f44c01906c715a58aaabf70909bf9636e561adee8ac35b08b29eadbe68","qualified_name":"SimpleGraph.instInhabited","statement":"(V : Type u) → Inhabited.{u + 1} (SimpleGraph.{u} V)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-0320c2000e0bc9827b66062002342fd8cee7441493592bf5a0460c72d3550fc2","qualified_name":"SimpleGraph.instLE","statement":"{V : Type u} → LE.{u} (SimpleGraph.{u} V)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-2aed82d890cd630383ea52e62e64173bae5d948368a90814d56951ebd04b5aea","qualified_name":"SimpleGraph.instMax","statement":"{V : Type u} → Max.{u} (SimpleGraph.{u} V)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-f838d878d3f9d5f9d18b631d683521ab22356dc30f5df08195170fb7ce82a99c","qualified_name":"SimpleGraph.instMin","statement":"{V : Type u} → Min.{u} (SimpleGraph.{u} V)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-17c7085882e1d9eb8cd62599989a90ff82800aa4644839f3de240e1143919ab8","qualified_name":"SimpleGraph.instNontrivial","statement":"∀ {V : Type u} [Nontrivial.{u} V], Nontrivial.{u} (SimpleGraph.{u} V)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-1b1f1fef891ae0112016a3865bc7a079b1e2f781992deff90835bd97a1306e12","qualified_name":"SimpleGraph.instPartialOrder","statement":"{V : Type u} → PartialOrder.{u} (SimpleGraph.{u} V)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-820a1ddf39db95a83c948e16295d7af9a2172df12658c4f14285fddcb5f215cf","qualified_name":"SimpleGraph.irrefl","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {v : V}, Not (@SimpleGraph.Adj.{u} V G v v)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-7130287df27f4c2f3b07606ae10bcd73274de2410e13f662bdbd799426d1308e","qualified_name":"SimpleGraph.isCompleteBetween_comm","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {s t : Set.{u} V},\n  Iff (@SimpleGraph.IsCompleteBetween.{u} V G s t) (@SimpleGraph.IsCompleteBetween.{u} V G t s)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-4a3b1e3695ccc24e757a821c1924332e525e1154ba93a0ace4ada64392aae0b1","qualified_name":"SimpleGraph.isIsolated_bot","statement":"∀ {V : Type u} {v : V},\n  @SimpleGraph.IsIsolated.{u} V\n    (@Bot.bot.{u} (SimpleGraph.{u} V)\n      (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n        (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n          (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))\n    v"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-3e098a0ae859055a7e228980fed41e9e40a65188fb294f2317e08a88df406a22","qualified_name":"SimpleGraph.isIsolated_compl_iff_isUniversal","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V},\n  Iff (@SimpleGraph.IsIsolated.{u} V (@Compl.compl.{u} (SimpleGraph.{u} V) (@SimpleGraph.instCompl.{u} V) G) v)\n    (@SimpleGraph.IsUniversal.{u} V G v)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-5322ea358039884f105b03a53884485b73deb65424a66799d96df844ed6cc328","qualified_name":"SimpleGraph.isIsolated_iff_forall_edgeSet_notMem","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V},\n  Iff (@SimpleGraph.IsIsolated.{u} V G v)\n    (∀ (e : Sym2.{u} V),\n      @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n          (@SimpleGraph.edgeSet.{u} V G) e →\n        v ∉ e)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-9de57a9315ba36a331eebbe26c5f79aece83d1dffe353da8be64bf154b73b7fa","qualified_name":"SimpleGraph.isUniversal_compl_iff_isIsolated","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V},\n  Iff (@SimpleGraph.IsUniversal.{u} V (@Compl.compl.{u} (SimpleGraph.{u} V) (@SimpleGraph.instCompl.{u} V) G) v)\n    (@SimpleGraph.IsIsolated.{u} V G v)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-7fa37971b435d5e2c5899644c79a97b76c325dba56f8ae6405db0acacac4c8d7","qualified_name":"SimpleGraph.le_fromEdgeSet_iff","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (s : Set.{u} (Sym2.{u} V)),\n  Iff (@LE.le.{u} (SimpleGraph.{u} V) (@SimpleGraph.instLE.{u} V) G (@SimpleGraph.fromEdgeSet.{u} V s))\n    (@LE.le.{u} (Set.{u} (Sym2.{u} V)) (@Set.instLE.{u} (Sym2.{u} V)) (@SimpleGraph.edgeSet.{u} V G) s)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-e03251197729411ff1966eeec069fe819ed4b3048f7efc9e139183358f7ae04b","qualified_name":"SimpleGraph.le_iff_adj","statement":"∀ {V : Type u} {G H : SimpleGraph.{u} V},\n  Iff (@LE.le.{u} (SimpleGraph.{u} V) (@SimpleGraph.instLE.{u} V) G H)\n    (∀ (v w : V), @SimpleGraph.Adj.{u} V G v w → @SimpleGraph.Adj.{u} V H v w)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-88e775f077840bbbd21fa43df0ef4f14c26a47713269d1222c8271c03d62ea36","qualified_name":"SimpleGraph.loopless","statement":"∀ {V : Type u} (self : SimpleGraph.{u} V), @Std.Irrefl.{u + 1} V (@SimpleGraph.Adj.{u} V self)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-54415a11f752e1c7d4166ebbce155aef25d7d460e171b45904a3a05b5dbafab9","qualified_name":"SimpleGraph.mem_commonNeighbors","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {u v w : V},\n  Iff (@Membership.mem.{u, u} V (Set.{u} V) (@Set.instMembership.{u} V) (@SimpleGraph.commonNeighbors.{u} V G v w) u)\n    (And (@SimpleGraph.Adj.{u} V G v u) (@SimpleGraph.Adj.{u} V G w u))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-3a9f43a0883ee78791337825dc9beab482a554f459842fed9f4ca925851e77e5","qualified_name":"SimpleGraph.mem_edgeSet","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {v w : V},\n  Iff\n    (@Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n      (@SimpleGraph.edgeSet.{u} V G) (@Sym2.mk.{u} V v w))\n    (@SimpleGraph.Adj.{u} V G v w)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-d1843d00577535f0dc8c698f1498b72fc24e0e72748e2e1a5c9a20950cfac3ab","qualified_name":"SimpleGraph.mem_incidenceSet","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v w : V),\n  Iff\n    (@Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n      (@SimpleGraph.incidenceSet.{u} V G v) (@Sym2.mk.{u} V v w))\n    (@SimpleGraph.Adj.{u} V G v w)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-827bdb49cb3c4f389b388ff4e94289b4a1e04184e947ca8b4e83a1fc42ca873d","qualified_name":"SimpleGraph.mem_incidence_iff_neighbor","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {v w : V},\n  Iff\n    (@Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n      (@SimpleGraph.incidenceSet.{u} V G v) (@Sym2.mk.{u} V v w))\n    (@Membership.mem.{u, u} V (Set.{u} V) (@Set.instMembership.{u} V) (@SimpleGraph.neighborSet.{u} V G v) w)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-c92740d3ae68ec955a66359fc72dc0f6a155a7e771c5855c1fed3484abe12de8","qualified_name":"SimpleGraph.mem_neighborSet","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v w : V),\n  Iff (@Membership.mem.{u, u} V (Set.{u} V) (@Set.instMembership.{u} V) (@SimpleGraph.neighborSet.{u} V G v) w)\n    (@SimpleGraph.Adj.{u} V G v w)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-ca487e117a4b49558158cddb0777a83fa6d49618d973f01213c6b6588c2840d2","qualified_name":"SimpleGraph.mem_support","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {v : V},\n  Iff (@Membership.mem.{u, u} V (Set.{u} V) (@Set.instMembership.{u} V) (@SimpleGraph.support.{u} V G) v)\n    (∃ w, @SimpleGraph.Adj.{u} V G v w)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-3db8998744c3841f5b6afcba065abc5e0ab584c3cb7c8992e3a63af34a292fa1","qualified_name":"SimpleGraph.mem_support_iff_not_isIsolated","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {v : V},\n  Iff (@Membership.mem.{u, u} V (Set.{u} V) (@Set.instMembership.{u} V) (@SimpleGraph.support.{u} V G) v)\n    (Not (@SimpleGraph.IsIsolated.{u} V G v))"},{"kind":"constructor","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-5a580df750caa170cea092b70b0d8783aa5c3744989fe638040843cac3979f49","qualified_name":"SimpleGraph.mk","statement":"{V : Type u} →\n  (Adj : V → V → Prop) →\n    autoParam.{0} (@Std.Symm.{u + 1} V Adj) SimpleGraph.symm._autoParam →\n      autoParam.{0} (@Std.Irrefl.{u + 1} V Adj) SimpleGraph.loopless._autoParam → SimpleGraph.{u} V"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-640ccc11db3fb63ca422b9aadfe0798773287abe0828de96f87185ea8e4893fe","qualified_name":"SimpleGraph.mk'","statement":"{V : Type u} →\n  Function.Embedding.{max 1 (u + 1), u + 1}\n    (@Subtype.{u + 1} (V → V → Bool) fun adj =>\n      And (∀ (x y : V), @Eq.{1} Bool (adj x y) (adj y x)) (∀ (x : V), Not (@Eq.{1} Bool (adj x x) Bool.true)))\n    (SimpleGraph.{u} V)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-738264f063bde783b5a85a756b67ccec146c83d85c3debee1c46b54d8c90e91a","qualified_name":"SimpleGraph.mk'_apply_adj","statement":"∀ {V : Type u}\n  (x :\n    @Subtype.{u + 1} (V → V → Bool) fun adj =>\n      And (∀ (x y : V), @Eq.{1} Bool (adj x y) (adj y x)) (∀ (x : V), Not (@Eq.{1} Bool (adj x x) Bool.true)))\n  (v w : V),\n  @Eq.{1} Prop\n    (@SimpleGraph.Adj.{u} V\n      (@DFunLike.coe.{max 1 (u + 1), max 1 (u + 1), u + 1}\n        (Function.Embedding.{max 1 (u + 1), u + 1}\n          (@Subtype.{u + 1} (V → V → Bool) fun adj =>\n            And (∀ (x y : V), @Eq.{1} Bool (adj x y) (adj y x)) (∀ (x : V), Not (@Eq.{1} Bool (adj x x) Bool.true)))\n          (SimpleGraph.{u} V))\n        (@Subtype.{u + 1} (V → V → Bool) fun adj =>\n          And (∀ (x y : V), @Eq.{1} Bool (adj x y) (adj y x)) (∀ (x : V), Not (@Eq.{1} Bool (adj x x) Bool.true)))\n        (fun x => SimpleGraph.{u} V)\n        (@Function.instFunLikeEmbedding.{max 1 (u + 1), u + 1}\n          (@Subtype.{u + 1} (V → V → Bool) fun adj =>\n            And (∀ (x y : V), @Eq.{1} Bool (adj x y) (adj y x)) (∀ (x : V), Not (@Eq.{1} Bool (adj x x) Bool.true)))\n          (SimpleGraph.{u} V))\n        (@SimpleGraph.mk'.{u} V) x)\n      v w)\n    (@Eq.{1} Bool\n      (@Subtype.val.{u + 1} (V → V → Bool)\n        (fun adj =>\n          And (∀ (x y : V), @Eq.{1} Bool (adj x y) (adj y x)) (∀ (x : V), Not (@Eq.{1} Bool (adj x x) Bool.true)))\n        x v w)\n      Bool.true)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-c942265d95704647877c9be11b91ede7cfc2da4fad48f1b5c1b355cbf9b1dd0c","qualified_name":"SimpleGraph.mk'_mem_incidenceSet_iff","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {a b c : V},\n  Iff\n    (@Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n      (@SimpleGraph.incidenceSet.{u} V G a) (@Sym2.mk.{u} V b c))\n    (And (@SimpleGraph.Adj.{u} V G b c) (Or (@Eq.{u + 1} V a b) (@Eq.{u + 1} V a c)))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-16ce93b6fe67e07c0a5c12468c5fde1308fe877bfbcc4db97d4b5aab4e37c2b7","qualified_name":"SimpleGraph.mk'_mem_incidenceSet_left_iff","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {a b : V},\n  Iff\n    (@Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n      (@SimpleGraph.incidenceSet.{u} V G a) (@Sym2.mk.{u} V a b))\n    (@SimpleGraph.Adj.{u} V G a b)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-1cfd675757fc70865ccd7c1d64b67606cf53c4c2a6090c40fdb64b2000c0febf","qualified_name":"SimpleGraph.mk'_mem_incidenceSet_right_iff","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {a b : V},\n  Iff\n    (@Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n      (@SimpleGraph.incidenceSet.{u} V G b) (@Sym2.mk.{u} V a b))\n    (@SimpleGraph.Adj.{u} V G a b)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-8a47db2e31916811ee5bdaca35fe5adf99d22ac3daf3b75fc018c5209c16e530","qualified_name":"SimpleGraph.ne_bot_iff_exists_adj","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V},\n  Iff\n    (@Ne.{u + 1} (SimpleGraph.{u} V) G\n      (@Bot.bot.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n    (∃ a b, @SimpleGraph.Adj.{u} V G a b)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-d209c6457dd115b595beafba0625d20c1e8db8cf079e9997ac00b847b1c7c222","qualified_name":"SimpleGraph.ne_of_adj","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {a b : V}, @SimpleGraph.Adj.{u} V G a b → @Ne.{u + 1} V a b"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-7b017c80dc05d98ee526157fd28762914c1b12f71564d3a71fe4047cb73824c3","qualified_name":"SimpleGraph.ne_of_adj_of_not_adj","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {v w x : V},\n  @SimpleGraph.Adj.{u} V G v x → Not (@SimpleGraph.Adj.{u} V G w x) → @Ne.{u + 1} V v w"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-db273d4f1b55f17c9f193f5771ca32f9fe635e9e3107d0ebd646f28bbd9720f7","qualified_name":"SimpleGraph.ne_top_iff_exists_not_adj","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V},\n  Iff\n    (@Ne.{u + 1} (SimpleGraph.{u} V) G\n      (@Top.top.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toTop.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n    (∃ a b, And (@Ne.{u + 1} V a b) (Not (@SimpleGraph.Adj.{u} V G a b)))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-02bf55aa275bdcbc49ce17a7389ca67fbb29f33c4cbe1a15706545f686e566ce","qualified_name":"SimpleGraph.neighborSet","statement":"{V : Type u} → SimpleGraph.{u} V → V → Set.{u} V"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-f31c25b02aa27aaff9664081bdb02760e78254e703e154a2965b8e87b386fccd","qualified_name":"SimpleGraph.neighborSet.memDecidable","statement":"{V : Type u} →\n  (G : SimpleGraph.{u} V) →\n    (v : V) →\n      [@DecidableRel.{u + 1, u + 1} V V (@SimpleGraph.Adj.{u} V G)] →\n        @DecidablePred.{u + 1} V fun x =>\n          @Membership.mem.{u, u} V (Set.{u} V) (@Set.instMembership.{u} V) (@SimpleGraph.neighborSet.{u} V G v) x"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-5be7e6ce4414e4a48387e6dce97029a3d3ec14bc6f0037ce03bab8e8ebb92dd7","qualified_name":"SimpleGraph.neighborSet_bot","statement":"∀ {V : Type u} {v : V},\n  @Eq.{u + 1} (Set.{u} V)\n    (@SimpleGraph.neighborSet.{u} V\n      (@Bot.bot.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))\n      v)\n    (@EmptyCollection.emptyCollection.{u} (Set.{u} V) (@Set.instEmptyCollection.{u} V))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-0f456894c9cf186636a2664231900205ca33011eb75e43592c1b692d67146439","qualified_name":"SimpleGraph.neighborSet_compl","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v : V),\n  @Eq.{u + 1} (Set.{u} V)\n    (@SimpleGraph.neighborSet.{u} V (@Compl.compl.{u} (SimpleGraph.{u} V) (@SimpleGraph.instCompl.{u} V) G) v)\n    (@SDiff.sdiff.{u} (Set.{u} V) (@Set.instSDiff.{u} V)\n      (@Compl.compl.{u} (Set.{u} V) (@Set.instCompl.{u} V) (@SimpleGraph.neighborSet.{u} V G v))\n      (@Singleton.singleton.{u, u} V (Set.{u} V) (@Set.instSingletonSet.{u} V) v))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-8df68c12cb4bc8ac823ce380efbce32cd84d68ee261f7440933314f54af129cf","qualified_name":"SimpleGraph.neighborSet_eq_compl_singleton","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V},\n  Iff\n    (@Eq.{u + 1} (Set.{u} V) (@SimpleGraph.neighborSet.{u} V G v)\n      (@Compl.compl.{u} (Set.{u} V) (@Set.instCompl.{u} V)\n        (@Singleton.singleton.{u, u} V (Set.{u} V) (@Set.instSingletonSet.{u} V) v)))\n    (@SimpleGraph.IsUniversal.{u} V G v)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-32dceb64ab2834cfaeca68b324c344b30add703851a8420b2e02f614bf88f8be","qualified_name":"SimpleGraph.neighborSet_eq_empty","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {v : V},\n  Iff\n    (@Eq.{u + 1} (Set.{u} V) (@SimpleGraph.neighborSet.{u} V G v)\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} V) (@Set.instEmptyCollection.{u} V)))\n    (@SimpleGraph.IsIsolated.{u} V G v)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-98f1de3c5afa61a64eb4f6933bef5672231672c7b731b64e393b920564d61046","qualified_name":"SimpleGraph.neighborSet_iInf","statement":"∀ {ι : Sort u_1} {V : Type u} [Nonempty.{u_1} ι] {s : ι → SimpleGraph.{u} V} (v : V),\n  @Eq.{u + 1} (Set.{u} V) (@SimpleGraph.neighborSet.{u} V (⨅ i, s i) v) (⋂ i, @SimpleGraph.neighborSet.{u} V (s i) v)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-140acb6925d1ddbcf49a95cc195a90d8fa0fe7829d8f20c73525a8257ece8e76","qualified_name":"SimpleGraph.neighborSet_iSup","statement":"∀ {ι : Sort u_1} {V : Type u} {s : ι → SimpleGraph.{u} V} (v : V),\n  @Eq.{u + 1} (Set.{u} V) (@SimpleGraph.neighborSet.{u} V (⨆ i, s i) v) (⋃ i, @SimpleGraph.neighborSet.{u} V (s i) v)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-264a8cd17a55f4dca9f622310f15e358d6804b53333474a8f221b82c85a81e24","qualified_name":"SimpleGraph.neighborSet_inf","statement":"∀ {V : Type u} {G₁ G₂ : SimpleGraph.{u} V} (v : V),\n  @Eq.{u + 1} (Set.{u} V)\n    (@SimpleGraph.neighborSet.{u} V (@Min.min.{u} (SimpleGraph.{u} V) (@SimpleGraph.instMin.{u} V) G₁ G₂) v)\n    (@Inter.inter.{u} (Set.{u} V) (@Set.instInter.{u} V) (@SimpleGraph.neighborSet.{u} V G₁ v)\n      (@SimpleGraph.neighborSet.{u} V G₂ v))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-18638a97a47ecb03334046a2282ebae53bea2995cfad5469c3a7eeff8f97df3e","qualified_name":"SimpleGraph.neighborSet_mono","statement":"∀ {V : Type u} {G G' : SimpleGraph.{u} V},\n  @LE.le.{u} (SimpleGraph.{u} V) (@SimpleGraph.instLE.{u} V) G G' →\n    ∀ (v : V),\n      @LE.le.{u} (Set.{u} V) (@Set.instLE.{u} V) (@SimpleGraph.neighborSet.{u} V G v)\n        (@SimpleGraph.neighborSet.{u} V G' v)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-18834785a5dc33efc061fae8beb1b527513a4abac7177a78df6043d29c170302","qualified_name":"SimpleGraph.neighborSet_ne_univ","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v : V),\n  @Ne.{u + 1} (Set.{u} V) (@SimpleGraph.neighborSet.{u} V G v) (@Set.univ.{u} V)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-514b7e1555405776d37fd3c06a68b79d1c6fdaff82871e5250cc5602e04b3c70","qualified_name":"SimpleGraph.neighborSet_nonempty","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {v : V},\n  Iff (@Set.Nonempty.{u} V (@SimpleGraph.neighborSet.{u} V G v)) (Not (@SimpleGraph.IsIsolated.{u} V G v))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-ecc2383eab37ae5ce5815c022b0c66a6694115066790a1a5f3fc838df1af2716","qualified_name":"SimpleGraph.neighborSet_sdiff","statement":"∀ {V : Type u} {G₁ G₂ : SimpleGraph.{u} V} (v : V),\n  @Eq.{u + 1} (Set.{u} V)\n    (@SimpleGraph.neighborSet.{u} V (@SDiff.sdiff.{u} (SimpleGraph.{u} V) (@SimpleGraph.sdiff.{u} V) G₁ G₂) v)\n    (@SDiff.sdiff.{u} (Set.{u} V) (@Set.instSDiff.{u} V) (@SimpleGraph.neighborSet.{u} V G₁ v)\n      (@SimpleGraph.neighborSet.{u} V G₂ v))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-ca38e829dc29c787e1ecdf4955c5966d81077f583d46b6bfc6fc7ed3a9006e43","qualified_name":"SimpleGraph.neighborSet_subset_compl","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v : V),\n  @LE.le.{u} (Set.{u} V) (@Set.instLE.{u} V) (@SimpleGraph.neighborSet.{u} V G v)\n    (@Compl.compl.{u} (Set.{u} V) (@Set.instCompl.{u} V)\n      (@Singleton.singleton.{u, u} V (Set.{u} V) (@Set.instSingletonSet.{u} V) v))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-de765599d2811769ed21dbec616268f0555e29dcf869a2bab88da9b074049d6e","qualified_name":"SimpleGraph.neighborSet_subset_support","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v : V),\n  @LE.le.{u} (Set.{u} V) (@Set.instLE.{u} V) (@SimpleGraph.neighborSet.{u} V G v) (@SimpleGraph.support.{u} V G)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-4fbe865e5f11b47a314db2a4c9eb83e6aad4c0ea36c2c63f5b5bcd206999bab9","qualified_name":"SimpleGraph.neighborSet_sup","statement":"∀ {V : Type u} {G₁ G₂ : SimpleGraph.{u} V} (v : V),\n  @Eq.{u + 1} (Set.{u} V)\n    (@SimpleGraph.neighborSet.{u} V (@Max.max.{u} (SimpleGraph.{u} V) (@SimpleGraph.instMax.{u} V) G₁ G₂) v)\n    (@Union.union.{u} (Set.{u} V) (@Set.instUnion.{u} V) (@SimpleGraph.neighborSet.{u} V G₁ v)\n      (@SimpleGraph.neighborSet.{u} V G₂ v))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-14bca54983db8fff380fd82d1e13ec068584316852816745e6e6b6aa8544f9f5","qualified_name":"SimpleGraph.neighborSet_top","statement":"∀ {V : Type u} {v : V},\n  @Eq.{u + 1} (Set.{u} V)\n    (@SimpleGraph.neighborSet.{u} V\n      (@Top.top.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toTop.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))\n      v)\n    (@Compl.compl.{u} (Set.{u} V) (@Set.instCompl.{u} V)\n      (@Singleton.singleton.{u, u} V (Set.{u} V) (@Set.instSingletonSet.{u} V) v))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-2434453184e32373353659321969f538a0bafa0fcceddace2eeb2a49ebcaccc0","qualified_name":"SimpleGraph.neighborSet_union_compl_neighborSet_eq","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v : V),\n  @Eq.{u + 1} (Set.{u} V)\n    (@Union.union.{u} (Set.{u} V) (@Set.instUnion.{u} V) (@SimpleGraph.neighborSet.{u} V G v)\n      (@SimpleGraph.neighborSet.{u} V (@Compl.compl.{u} (SimpleGraph.{u} V) (@SimpleGraph.instCompl.{u} V) G) v))\n    (@Compl.compl.{u} (Set.{u} V) (@Set.instCompl.{u} V)\n      (@Singleton.singleton.{u, u} V (Set.{u} V) (@Set.instSingletonSet.{u} V) v))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-79f0177c00530b517a6b1ccf259b985c3f333c4216d8aeefa341306e4d342f22","qualified_name":"SimpleGraph.nonempty_neighborSet","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V},\n  Iff (@Set.Nonempty.{u} V (@SimpleGraph.neighborSet.{u} V G v)) (∃ u, @SimpleGraph.Adj.{u} V G v u)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-dd67c8cf8b125a929c3df81b9eec86c6808ec2d4b62168617b9f1cf086118696","qualified_name":"SimpleGraph.nontrivial_iff","statement":"∀ {V : Type u}, Iff (Nontrivial.{u} (SimpleGraph.{u} V)) (Nontrivial.{u} V)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-9f70c5876d3c376238fccf4c37c67de205d22d71adb2a4210332ca0cd19945a9","qualified_name":"SimpleGraph.nontrivial_of_not_isIsolated","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V}, Not (@SimpleGraph.IsIsolated.{u} V G v) → Nontrivial.{u} V"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-460a762c7bc244084949615f1452c07322775aa23ec4be430d698a95559451d8","qualified_name":"SimpleGraph.notMem_commonNeighbors_left","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v w : V), v ∉ @SimpleGraph.commonNeighbors.{u} V G v w"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-b6666e520f22f2068af2c65837827ec02d269a112f37e2379632345ba0672660","qualified_name":"SimpleGraph.notMem_commonNeighbors_right","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) (v w : V), w ∉ @SimpleGraph.commonNeighbors.{u} V G v w"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-3f47dc45dbfe3278fd38cf02a8c8ab13222b5525f8301226cd74457669b7de88","qualified_name":"SimpleGraph.notMem_neighborSet_self","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {a : V}, a ∉ @SimpleGraph.neighborSet.{u} V G a"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-8218113921361ec6a68bc213a39891c2abba9047e2d43497a24d5ea2dcba4d28","qualified_name":"SimpleGraph.notMem_support_iff_isIsolated","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {v : V},\n  Iff (v ∉ @SimpleGraph.support.{u} V G) (@SimpleGraph.IsIsolated.{u} V G v)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-3a12976d94adc5d2e7aee1c55e0699810c1d7e06d75e27d291fe32b031adc6f1","qualified_name":"SimpleGraph.not_isDiag_of_mem_edgeSet","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {e : Sym2.{u} V},\n  @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n      (@SimpleGraph.edgeSet.{u} V G) e →\n    Not (@Sym2.IsDiag.{u} V e)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-6480ae51c2b3aaab6734d52e2b3f40721443d6aa7d5da4d66b4f00921add2d0c","qualified_name":"SimpleGraph.not_isIsolated_iff_exists_edgeSet_mem","statement":"∀ {V : Type u} {G : SimpleGraph.{u} V} {v : V},\n  Iff (Not (@SimpleGraph.IsIsolated.{u} V G v))\n    (∃ e,\n      And\n        (@Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n          (@SimpleGraph.edgeSet.{u} V G) e)\n        (@Membership.mem.{u, u} V (Sym2.{u} V) (@SetLike.instMembership.{u, u} (Sym2.{u} V) V (@Sym2.instSetLike.{u} V))\n          e v))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-4c99dec4da975951081b38dc0d0717b8fec20fdd43d9049844a244463acfc3cb","qualified_name":"SimpleGraph.not_mem_edgeSet_of_isDiag","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {e : Sym2.{u} V}, @Sym2.IsDiag.{u} V e → e ∉ @SimpleGraph.edgeSet.{u} V G"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-aa27828558f9948a3209b50ed3b0d2c6e9a6654c88338b905fec807bd401e81a","qualified_name":"SimpleGraph.otherVertexOfIncident","statement":"{V : Type u} →\n  (G : SimpleGraph.{u} V) →\n    [DecidableEq.{u + 1} V] →\n      {v : V} →\n        {e : Sym2.{u} V} →\n          @Membership.mem.{u, u} (Sym2.{u} V) (Set.{u} (Sym2.{u} V)) (@Set.instMembership.{u} (Sym2.{u} V))\n              (@SimpleGraph.incidenceSet.{u} V G v) e →\n            V"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-2a9f0b70449086598edaf0e6f660781829bbc4041366ef7ad2e2c89a270cd0a8","qualified_name":"SimpleGraph.sInf_adj","statement":"∀ {V : Type u} {a b : V} {s : Set.{u} (SimpleGraph.{u} V)},\n  Iff (@SimpleGraph.Adj.{u} V (@InfSet.sInf.{u} (SimpleGraph.{u} V) (@SimpleGraph.infSet.{u} V) s) a b)\n    (And\n      (∀ (G : SimpleGraph.{u} V),\n        @Membership.mem.{u, u} (SimpleGraph.{u} V) (Set.{u} (SimpleGraph.{u} V))\n            (@Set.instMembership.{u} (SimpleGraph.{u} V)) s G →\n          @SimpleGraph.Adj.{u} V G a b)\n      (@Ne.{u + 1} V a b))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-5e3c04ecfc8d8b5b8ab7d6c1963d247a1adaf41bd0dd4042a08cbb45419dd8f6","qualified_name":"SimpleGraph.sInf_adj_of_nonempty","statement":"∀ {V : Type u} {a b : V} {s : Set.{u} (SimpleGraph.{u} V)},\n  @Set.Nonempty.{u} (SimpleGraph.{u} V) s →\n    Iff (@SimpleGraph.Adj.{u} V (@InfSet.sInf.{u} (SimpleGraph.{u} V) (@SimpleGraph.infSet.{u} V) s) a b)\n      (∀ (G : SimpleGraph.{u} V),\n        @Membership.mem.{u, u} (SimpleGraph.{u} V) (Set.{u} (SimpleGraph.{u} V))\n            (@Set.instMembership.{u} (SimpleGraph.{u} V)) s G →\n          @SimpleGraph.Adj.{u} V G a b)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-aa8c7adbcf585d39af9a46b2ac79678ffc0cf39eddc7b2a259099a76b719241b","qualified_name":"SimpleGraph.sSup_adj","statement":"∀ {V : Type u} {s : Set.{u} (SimpleGraph.{u} V)} {a b : V},\n  Iff (@SimpleGraph.Adj.{u} V (@SupSet.sSup.{u} (SimpleGraph.{u} V) (@SimpleGraph.supSet.{u} V) s) a b)\n    (∃ G,\n      And\n        (@Membership.mem.{u, u} (SimpleGraph.{u} V) (Set.{u} (SimpleGraph.{u} V))\n          (@Set.instMembership.{u} (SimpleGraph.{u} V)) s G)\n        (@SimpleGraph.Adj.{u} V G a b))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-6b635dbdd8574a73c25e0e0f64596fe41509cbe334220ef238ed359c4ed8e1fa","qualified_name":"SimpleGraph.sdiff","statement":"{V : Type u} → SDiff.{u} (SimpleGraph.{u} V)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-6bf64cb9a77befe553755e771a377588f8f97b80a2e0d90285d355cb81319150","qualified_name":"SimpleGraph.sdiff_adj","statement":"∀ {V : Type u} (x y : SimpleGraph.{u} V) (v w : V),\n  Iff (@SimpleGraph.Adj.{u} V (@SDiff.sdiff.{u} (SimpleGraph.{u} V) (@SimpleGraph.sdiff.{u} V) x y) v w)\n    (And (@SimpleGraph.Adj.{u} V x v w) (Not (@SimpleGraph.Adj.{u} V y v w)))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-4f13c897b6485158c389b17e864076ca34ab827a57544394bc729dc7bf13797c","qualified_name":"SimpleGraph.subsingleton_iff","statement":"∀ {V : Type u}, Iff (Subsingleton.{u + 1} (SimpleGraph.{u} V)) (Subsingleton.{u + 1} V)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-45a0d4cd14a44b9d923ccc5baa2a093a5b127e7ebc8ede73a75bf5f952307944","qualified_name":"SimpleGraph.supSet","statement":"{V : Type u} → SupSet.{u} (SimpleGraph.{u} V)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-9f588f911eb82ecde5018f22f61226ea1323f461402add3b7fb2c31fef9a4ff8","qualified_name":"SimpleGraph.sup_adj","statement":"∀ {V : Type u} (x y : SimpleGraph.{u} V) (v w : V),\n  Iff (@SimpleGraph.Adj.{u} V (@Max.max.{u} (SimpleGraph.{u} V) (@SimpleGraph.instMax.{u} V) x y) v w)\n    (Or (@SimpleGraph.Adj.{u} V x v w) (@SimpleGraph.Adj.{u} V y v w))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-fd7321b900bf294a7cf449c97e65d0505d7821b90d9c6e1f511b9b4e8af23e78","qualified_name":"SimpleGraph.support","statement":"{V : Type u} → SimpleGraph.{u} V → Set.{u} V"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-234992f3f99a26aa4d6dd40d0a30f9ecc53bdfc4b16a3f86824865cc1f9552a6","qualified_name":"SimpleGraph.support_bot","statement":"∀ {V : Type u},\n  @Eq.{u + 1} (Set.{u} V)\n    (@SimpleGraph.support.{u} V\n      (@Bot.bot.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n    (@EmptyCollection.emptyCollection.{u} (Set.{u} V) (@Set.instEmptyCollection.{u} V))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-90f8e49366c36c6de8f50840a09cccae8d78dc546812c66d23d0f6e4a96b4581","qualified_name":"SimpleGraph.support_eq_bot_iff","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V),\n  Iff\n    (@Eq.{u + 1} (Set.{u} V) (@SimpleGraph.support.{u} V G)\n      (@EmptyCollection.emptyCollection.{u} (Set.{u} V) (@Set.instEmptyCollection.{u} V)))\n    (@Eq.{u + 1} (SimpleGraph.{u} V) G\n      (@Bot.bot.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toBot.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-5af782292b6297c0c379e4e63cff6ac7a0ac38481b4d12239d2153a5c99e2dd1","qualified_name":"SimpleGraph.support_mono","statement":"∀ {V : Type u} {G G' : SimpleGraph.{u} V},\n  @LE.le.{u} (SimpleGraph.{u} V) (@SimpleGraph.instLE.{u} V) G G' →\n    @LE.le.{u} (Set.{u} V) (@Set.instLE.{u} V) (@SimpleGraph.support.{u} V G) (@SimpleGraph.support.{u} V G')"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-2bcb388da9f074ed67a5162ae9854ac917e0f27cb2499daee187afa98d44ba45","qualified_name":"SimpleGraph.support_of_subsingleton","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) [Subsingleton.{u + 1} V],\n  @Eq.{u + 1} (Set.{u} V) (@SimpleGraph.support.{u} V G)\n    (@EmptyCollection.emptyCollection.{u} (Set.{u} V) (@Set.instEmptyCollection.{u} V))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-2d4c15ad204af054660b15ef6fc4fb66d41390eece6f66be2345aa625d6a49ea","qualified_name":"SimpleGraph.support_top_of_nontrivial","statement":"∀ {V : Type u} [Nontrivial.{u} V],\n  @Eq.{u + 1} (Set.{u} V)\n    (@SimpleGraph.support.{u} V\n      (@Top.top.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toTop.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V))))))\n    (@Set.univ.{u} V)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-8a1f26d34f619f7952c0729fcd27b249fbb235a995d2bd134e1d10fd44e2ae27","qualified_name":"SimpleGraph.symm","statement":"∀ {V : Type u} (self : SimpleGraph.{u} V), @Std.Symm.{u + 1} V (@SimpleGraph.Adj.{u} V self)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-14b6688ba2b54689e67ea5aae0544664c97d1ef42930dc04ea273b775b97704c","qualified_name":"SimpleGraph.symm_adj","statement":"∀ {ι : Sort u_1} {V : Type u} (G : SimpleGraph.{u} V) (f : ι → V),\n  @Std.Symm.{u_1} ι fun i j => @SimpleGraph.Adj.{u} V G (f i) (f j)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-a8a85431b02954c78a5d74f141c996357c277741f3ee99a65495f7f880c48408","qualified_name":"SimpleGraph.top_adj","statement":"∀ {V : Type u} (v w : V),\n  Iff\n    (@SimpleGraph.Adj.{u} V\n      (@Top.top.{u} (SimpleGraph.{u} V)\n        (@BooleanAlgebra.toTop.{u} (SimpleGraph.{u} V)\n          (@CompleteBooleanAlgebra.toBooleanAlgebra.{u} (SimpleGraph.{u} V)\n            (@CompleteAtomicBooleanAlgebra.toCompleteBooleanAlgebra.{u} (SimpleGraph.{u} V)\n              (@SimpleGraph.completeAtomicBooleanAlgebra.{u} V)))))\n      v w)\n    (@Ne.{u + 1} V v w)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-1d7043a3a289adab0f51a9f1a9b15e6fde928e5f00115a350c7426e25ab1bda0","qualified_name":"SimpleGraph.uniqueOfSubsingleton","statement":"{V : Type u} → [Subsingleton.{u + 1} V] → Unique.{u + 1} (SimpleGraph.{u} V)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-c2ab92f5f1e88cc61ea7f207c178f5ba063cf1084ea30e1db713687a9b1f8028","qualified_name":"Std.Irrefl.compl","statement":"∀ {α : Type u_2} (r : α → α → Prop) [@Std.Irrefl.{u_2 + 1} α r],\n  @Std.Refl.{u_2 + 1} α\n    (@Compl.compl.{u_2} (α → α → Prop)\n      (@Pi.instCompl.{u_2, u_2} α (fun a => α → Prop) fun i =>\n        @Pi.instCompl.{u_2, 0} α (fun a => Prop) fun i => «Prop».instCompl)\n      r)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-bfe5522ba4e312159f6b1860df19250c095e753f74a0bc25e5e0b5fd5472c82b","qualified_name":"Std.Refl.compl","statement":"∀ {α : Type u_2} (r : α → α → Prop) [@Std.Refl.{u_2 + 1} α r],\n  @Std.Irrefl.{u_2 + 1} α\n    (@Compl.compl.{u_2} (α → α → Prop)\n      (@Pi.instCompl.{u_2, u_2} α (fun a => α → Prop) fun i =>\n        @Pi.instCompl.{u_2, 0} α (fun a => Prop) fun i => «Prop».instCompl)\n      r)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-62b7b77fbb9928e8c40485f19f2cc2ce8eceda0fd0e2c153c5f80f3a488b7c6f","qualified_name":"Std.Symm.forall_existsUnique_iff","statement":"∀ {α : Sort u_1} {r : α → α → Prop} [@Std.Symm.{u_1} α r],\n  Iff (∀ (a : α), @ExistsUnique.{u_1} α fun b => r a b)\n    (∃ f, And (@Function.Involutive.{u_1} α f) (∀ {a b : α}, Iff (r a b) (@Eq.{u_1} α (f a) b)))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-767144ce1993fa22f5590978a2f24127520c66dd22b47c15a40253fc76b9ed01","qualified_name":"Std.Symm.forall_existsUnique_iff'","statement":"∀ {α : Sort u_1} {r : α → α → Prop} [@Std.Symm.{u_1} α r],\n  Iff (∀ (a : α), @ExistsUnique.{u_1} α fun b => r a b)\n    (∃ f, And (@Function.Involutive.{u_1} α f) (@Eq.{max 1 u_1} (α → α → Prop) r fun x1 x2 => @Eq.{u_1} α (f x1) x2))"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-25cd9ab36bb05c493a1d16b6f9c2ed031ce4457bceb5ab489d16b871ee9240a7","qualified_name":"StrongLT","statement":"{ι : Type u_1} → {π : ι → Type u_4} → [(i : ι) → LT.{u_4} (π i)] → ((i : ι) → π i) → ((i : ι) → π i) → Prop"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-ffe875820a74d6e588e46cbea1323be657595adc68dee298b6f3e343035fd1e8","qualified_name":"StrongLT.le","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → Preorder.{u_4} (π i)] {a b : (i : ι) → π i},\n  @StrongLT.{u_1, u_4} ι π (fun i => @Preorder.toLT.{u_4} (π i) (inst i)) a b →\n    @LE.le.{max u_1 u_4} ((i : ι) → π i) (@Pi.hasLe.{u_1, u_4} ι π fun i => @Preorder.toLE.{u_4} (π i) (inst i)) a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-8f6e2a22ccdd501889da9e625419b4d37dde593216be540b28d2ca9714edbb6b","qualified_name":"StrongLT.lt","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → Preorder.{u_4} (π i)] {a b : (i : ι) → π i}\n  [Nonempty.{u_1 + 1} ι],\n  @StrongLT.{u_1, u_4} ι π (fun i => @Preorder.toLT.{u_4} (π i) (inst i)) a b →\n    @LT.lt.{max u_1 u_4} ((i : ι) → π i)\n      (@Preorder.toLT.{max u_1 u_4} ((i : ι) → π i) (@Pi.preorder.{u_1, u_4} ι π inst)) a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-03be3cf77d14c489d57da1f859ad3c8fe329192cf04e5ef94d71cef1afbcb8d8","qualified_name":"StrongLT.trans_le","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → Preorder.{u_4} (π i)] {a b c : (i : ι) → π i},\n  @StrongLT.{u_1, u_4} ι π (fun i => @Preorder.toLT.{u_4} (π i) (inst i)) a b →\n    @LE.le.{max u_1 u_4} ((i : ι) → π i) (@Pi.hasLe.{u_1, u_4} ι π fun i => @Preorder.toLE.{u_4} (π i) (inst i)) b c →\n      @StrongLT.{u_1, u_4} ι π (fun i => @Preorder.toLT.{u_4} (π i) (inst i)) a c"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-ae32054665d5eb5af5d19b81825c7f8f04daaeb0ccf363851a7fc11d552ea81a","qualified_name":"Subsingleton.eq_univ_of_nonempty","statement":"∀ {α : Type u_1} [Subsingleton.{u_1 + 1} α] {s : Set.{u_1} α},\n  @Set.Nonempty.{u_1} α s → @Eq.{u_1 + 1} (Set.{u_1} α) s (@Set.univ.{u_1} α)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-7db2d29bb978398843687bf73c6117b3555dd13b94b0924f195320078e4181e3","qualified_name":"Subsingleton.instDenselyOrdered","statement":"∀ {X : Type u_5} [Subsingleton.{u_5 + 1} X] [inst : LT.{u_5} X], @DenselyOrdered.{u_5} X inst"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-be0d0127fcb445fa10bba94e0156a9e9a27e0b2bfcb15071ce5876e948e141b8","qualified_name":"Subsingleton.mem_iff_nonempty","statement":"∀ {α : Type u_2} [Subsingleton.{u_2 + 1} α] {s : Set.{u_2} α} {x : α},\n  Iff (@Membership.mem.{u_2, u_2} α (Set.{u_2} α) (@Set.instMembership.{u_2} α) s x) (@Set.Nonempty.{u_2} α s)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-d098e12ba75ee1087475d40b40e6e68a40eb2d1df3f48c14703521a6380de0e1","qualified_name":"Subsingleton.set_cases","statement":"∀ {α : Type u_1} [Subsingleton.{u_1 + 1} α] {p : Set.{u_1} α → Prop},\n  p (@EmptyCollection.emptyCollection.{u_1} (Set.{u_1} α) (@Set.instEmptyCollection.{u_1} α)) →\n    p (@Set.univ.{u_1} α) → ∀ (s : Set.{u_1} α), p s"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-816de2c2126ff4fa6c3b902513f3fe5e4efb776b4deedd68c3f97b6679ea4fb1","qualified_name":"Subsingleton.to_isCancelMulZero","statement":"∀ (α : Type u_3) [inst : Mul.{u_3} α] [inst_1 : Zero.{u_3} α] [Subsingleton.{u_3 + 1} α],\n  @IsCancelMulZero.{u_3} α inst inst_1"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-540ff1cdf48740b4daaa68cbac36dc7f0fef2e59b79fb939fd565e9346659b91","qualified_name":"Subsingleton.to_noZeroDivisors","statement":"∀ (α : Type u_3) [inst : Mul.{u_3} α] [inst_1 : Zero.{u_3} α] [Subsingleton.{u_3 + 1} α],\n  @NoZeroDivisors.{u_3} α inst inst_1"},{"kind":"definition","module":"Mathlib.Algebra.Group.Basic","object_id":"object-742add014f4e66a295274384b58bf1dedb7a10b6acdd5c6f7d723fee94f86d27","qualified_name":"SubtractionMonoid.toSubNegZeroMonoid","statement":"{α : Type u_1} → [SubtractionMonoid.{u_1} α] → SubNegZeroMonoid.{u_1} α"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e8bb10edd2abb634220e0acdee361c01dbf4fb04c5763c95c73253e1cce89847","qualified_name":"SubtractionMonoid.toSubNegZeroMonoid._proof_1","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α],\n  @Eq.{u_1 + 1} α\n    (@Neg.neg.{u_1} α (@SubNegMonoid.toNeg.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@AddMonoid.toZero.{u_1} α\n            (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))\n    (@OfNat.ofNat.{u_1} α (nat_lit 0)\n      (@Zero.toOfNat0.{u_1} α\n        (@AddMonoid.toZero.{u_1} α\n          (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-0fe80ccc2a45d4c8279ef0fdadf1fed4c282c3f2613bdf0ba5490bc5f783f691","qualified_name":"Subtype.coe_le_coe","statement":"∀ {α : Type u_2} [inst : LE.{u_2} α] {p : α → Prop} {x y : @Subtype.{u_2 + 1} α p},\n  Iff (@LE.le.{u_2} α inst (@Subtype.val.{u_2 + 1} α p x) (@Subtype.val.{u_2 + 1} α p y))\n    (@LE.le.{u_2} (@Subtype.{u_2 + 1} α p) (@Subtype.instLE.{u_2} α inst p) x y)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-3c78cd9493b1fa7ba0511b800ca187608fdab645229a082e1d5066250eb95d48","qualified_name":"Subtype.coe_lt_coe","statement":"∀ {α : Type u_2} [inst : LT.{u_2} α] {p : α → Prop} {x y : @Subtype.{u_2 + 1} α p},\n  Iff (@LT.lt.{u_2} α inst (@Subtype.val.{u_2 + 1} α p x) (@Subtype.val.{u_2 + 1} α p y))\n    (@LT.lt.{u_2} (@Subtype.{u_2 + 1} α p) (@Subtype.instLT.{u_2} α inst p) x y)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-b98edefaf9791e769586c56f17d6da2bedc82df0ba250f5044bee9557045f80c","qualified_name":"Subtype.decidableLE","statement":"{α : Type u_2} →\n  [inst : Preorder.{u_2} α] →\n    [h : @DecidableLE.{u_2} α (@Preorder.toLE.{u_2} α inst)] →\n      {p : α → Prop} →\n        @DecidableLE.{u_2} (@Subtype.{u_2 + 1} α p) (@Subtype.instLE.{u_2} α (@Preorder.toLE.{u_2} α inst) p)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-69c68c54e388f4b8bf5c0e7a64ed1399086cdf19bd0c2620b04867d06460e8a9","qualified_name":"Subtype.decidableLT","statement":"{α : Type u_2} →\n  [inst : Preorder.{u_2} α] →\n    [h : @DecidableLT.{u_2} α (@Preorder.toLT.{u_2} α inst)] →\n      {p : α → Prop} →\n        @DecidableLT.{u_2} (@Subtype.{u_2 + 1} α p) (@Subtype.instLT.{u_2} α (@Preorder.toLT.{u_2} α inst) p)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-554e377f87d67d95647282694ac3cfb92de39d6cfd0d766bc1d8d632799db1a0","qualified_name":"Subtype.instLinearOrder","statement":"{α : Type u_2} → [LinearOrder.{u_2} α] → (p : α → Prop) → LinearOrder.{u_2} (@Subtype.{u_2 + 1} α p)"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-2cd3ba9a455f2179d4a2893b0ef1c1b011b5a1b9389e06034bff9faf34b1b7dc","qualified_name":"Subtype.mem","statement":"∀ {α : Type u_1} {s : Set.{u_1} α} (p : @Set.Elem.{u_1} α s),\n  @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s\n    (@Subtype.val.{u_1 + 1} α (fun x => @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s x) p)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-7a3443f7fce6e8fd5812ab42ce140b40025562b48e34a657fa19465c13a96fc5","qualified_name":"Subtype.mk_le_mk","statement":"∀ {α : Type u_2} [inst : LE.{u_2} α] {p : α → Prop} {x y : α} {hx : p x} {hy : p y},\n  Iff\n    (@LE.le.{u_2} (@Subtype.{u_2 + 1} α p) (@Subtype.instLE.{u_2} α inst p) (@Subtype.mk.{u_2 + 1} α p x hx)\n      (@Subtype.mk.{u_2 + 1} α p y hy))\n    (@LE.le.{u_2} α inst x y)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-db95d6f45d95b206233949db05943e3d90ec42caeac89319c4d835cb9c4887c9","qualified_name":"Subtype.mk_lt_mk","statement":"∀ {α : Type u_2} [inst : LT.{u_2} α] {p : α → Prop} {x y : α} {hx : p x} {hy : p y},\n  Iff\n    (@LT.lt.{u_2} (@Subtype.{u_2 + 1} α p) (@Subtype.instLT.{u_2} α inst p) (@Subtype.mk.{u_2 + 1} α p x hx)\n      (@Subtype.mk.{u_2 + 1} α p y hy))\n    (@LT.lt.{u_2} α inst x y)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-acd8191ee1bab8c2b6c76c47dcfaa1743de67abff037e4a5fb005e32da5b2979","qualified_name":"Subtype.partialOrder","statement":"{α : Type u_2} → [PartialOrder.{u_2} α] → (p : α → Prop) → PartialOrder.{u_2} (@Subtype.{u_2 + 1} α p)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-f7f342845d5d5ad3648f840cdb2a1b64baf427d7f223b05df33054055d723a1a","qualified_name":"Subtype.preorder","statement":"{α : Type u_2} → [Preorder.{u_2} α] → (p : α → Prop) → Preorder.{u_2} (@Subtype.{u_2 + 1} α p)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-1153754aecdb73d0c7680e08600a6727a2597bc27cbb0d87fe8ee2ea4a2de78f","qualified_name":"Sum.const_le_elim_iff","statement":"∀ {β : Type u_3} {α₁ : Type u_5} {α₂ : Type u_6} [inst : LE.{u_3} β] {b : β} {v₁ : α₁ → β} {v₂ : α₂ → β},\n  Iff\n    (@LE.le.{max (max u_3 u_5) u_6} (Sum.{u_5, u_6} α₁ α₂ → β)\n      (@Pi.hasLe.{max u_5 u_6, u_3} (Sum.{u_5, u_6} α₁ α₂) (fun a => β) fun i => inst)\n      (@Function.const.{u_3 + 1, max (u_5 + 1) (u_6 + 1)} β (Sum.{u_5, u_6} α₁ α₂) b)\n      (@Sum.elim.{u_5, u_6, u_3 + 1} α₁ α₂ β v₁ v₂))\n    (And\n      (@LE.le.{max u_3 u_5} (α₁ → β) (@Pi.hasLe.{u_5, u_3} α₁ (fun a => β) fun i => inst)\n        (@Function.const.{u_3 + 1, u_5 + 1} β α₁ b) v₁)\n      (@LE.le.{max u_3 u_6} (α₂ → β) (@Pi.hasLe.{u_6, u_3} α₂ (fun a => β) fun i => inst)\n        (@Function.const.{u_3 + 1, u_6 + 1} β α₂ b) v₂))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-d96042121f98a0538e466c8db0b003ab5ca0aea67e243f15cb4a2668737c1563","qualified_name":"Sum.elim_le_const_iff","statement":"∀ {β : Type u_3} {α₁ : Type u_5} {α₂ : Type u_6} [inst : LE.{u_3} β] {b : β} {u₁ : α₁ → β} {u₂ : α₂ → β},\n  Iff\n    (@LE.le.{max (max u_3 u_5) u_6} (Sum.{u_5, u_6} α₁ α₂ → β)\n      (@Pi.hasLe.{max u_5 u_6, u_3} (Sum.{u_5, u_6} α₁ α₂) (fun a => β) fun i => inst)\n      (@Sum.elim.{u_5, u_6, u_3 + 1} α₁ α₂ β u₁ u₂)\n      (@Function.const.{u_3 + 1, max (u_5 + 1) (u_6 + 1)} β (Sum.{u_5, u_6} α₁ α₂) b))\n    (And\n      (@LE.le.{max u_3 u_5} (α₁ → β) (@Pi.hasLe.{u_5, u_3} α₁ (fun a => β) fun i => inst) u₁\n        (@Function.const.{u_3 + 1, u_5 + 1} β α₁ b))\n      (@LE.le.{max u_3 u_6} (α₂ → β) (@Pi.hasLe.{u_6, u_3} α₂ (fun a => β) fun i => inst) u₂\n        (@Function.const.{u_3 + 1, u_6 + 1} β α₂ b)))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-18662d844db7b95f8a1fdebafe1d8eb89561c859f38257a05ca1ec0978e5f9b5","qualified_name":"Sum.elim_le_elim_iff","statement":"∀ {β : Type u_3} {α₁ : Type u_5} {α₂ : Type u_6} [inst : LE.{u_3} β] {u₁ v₁ : α₁ → β} {u₂ v₂ : α₂ → β},\n  Iff\n    (@LE.le.{max (max u_3 u_5) u_6} (Sum.{u_5, u_6} α₁ α₂ → β)\n      (@Pi.hasLe.{max u_5 u_6, u_3} (Sum.{u_5, u_6} α₁ α₂) (fun a => β) fun i => inst)\n      (@Sum.elim.{u_5, u_6, u_3 + 1} α₁ α₂ β u₁ u₂) (@Sum.elim.{u_5, u_6, u_3 + 1} α₁ α₂ β v₁ v₂))\n    (And (@LE.le.{max u_3 u_5} (α₁ → β) (@Pi.hasLe.{u_5, u_3} α₁ (fun a => β) fun i => inst) u₁ v₁)\n      (@LE.le.{max u_3 u_6} (α₂ → β) (@Pi.hasLe.{u_6, u_3} α₂ (fun a => β) fun i => inst) u₂ v₂))"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-506df658d5801c7584be1e1b3f39955fa1f9c9bee0d52664cb675d6851e747c8","qualified_name":"Sym2.IsDiag.not_mem_edgeSet","statement":"∀ {V : Type u} (G : SimpleGraph.{u} V) {e : Sym2.{u} V}, @Sym2.IsDiag.{u} V e → e ∉ @SimpleGraph.edgeSet.{u} V G"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-9c8564f4c55bc4734422c53c0746961f0cf5c6db91f34c2e26da886c01ed8216","qualified_name":"Symmetric.forall_existsUnique_iff","statement":"∀ {α : Sort u_1} {r : α → α → Prop} [@Std.Symm.{u_1} α r],\n  Iff (∀ (a : α), @ExistsUnique.{u_1} α fun b => r a b)\n    (∃ f, And (@Function.Involutive.{u_1} α f) (∀ {a b : α}, Iff (r a b) (@Eq.{u_1} α (f a) b)))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-020350394e261f7f0ba8468035411e4e2d9df013f76551be307b018305fcbe1a","qualified_name":"Symmetric.forall_existsUnique_iff'","statement":"∀ {α : Sort u_1} {r : α → α → Prop} [@Std.Symm.{u_1} α r],\n  Iff (∀ (a : α), @ExistsUnique.{u_1} α fun b => r a b)\n    (∃ f, And (@Function.Involutive.{u_1} α f) (@Eq.{max 1 u_1} (α → α → Prop) r fun x1 x2 => @Eq.{u_1} α (f x1) x2))"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-e380876a453d3baf2c1f343a2e7e21015c1ca24e7b3b7a45c6cb1596c5b5614c","qualified_name":"TopologicalSpace.ext","statement":"∀ {X : Type u} {f g : TopologicalSpace.{u} X},\n  @Eq.{u + 1} (Set.{u} X → Prop) (@IsOpen.{u} X f) (@IsOpen.{u} X g) → @Eq.{u + 1} (TopologicalSpace.{u} X) f g"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-309ac023f33c990a13cc68e62cb5cbb31466660eb966329e878276ee4184e02e","qualified_name":"TopologicalSpace.ext_iff","statement":"∀ {X : Type u} {t t' : TopologicalSpace.{u} X},\n  Iff (@Eq.{u + 1} (TopologicalSpace.{u} X) t t') (∀ (s : Set.{u} X), Iff (@IsOpen.{u} X t s) (@IsOpen.{u} X t' s))"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-27f3892f69f379b4c9ff1f4f34fedffbf57f3611dd53e3fd65080fcb4d76b7a8","qualified_name":"TopologicalSpace.ext_iff_isClosed","statement":"∀ {X : Type u_2} {t₁ t₂ : TopologicalSpace.{u_2} X},\n  Iff (@Eq.{u_2 + 1} (TopologicalSpace.{u_2} X) t₁ t₂)\n    (∀ (s : Set.{u_2} X), Iff (@IsClosed.{u_2} X t₁ s) (@IsClosed.{u_2} X t₂ s))"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-9e4af71ea6f3bba44e0000a2b09ab91a1a3d50922270756cfd9f7079086fc80f","qualified_name":"TopologicalSpace.ext_isClosed","statement":"∀ {X : Type u_2} {t₁ t₂ : TopologicalSpace.{u_2} X},\n  (∀ (s : Set.{u_2} X), Iff (@IsClosed.{u_2} X t₁ s) (@IsClosed.{u_2} X t₂ s)) →\n    @Eq.{u_2 + 1} (TopologicalSpace.{u_2} X) t₁ t₂"},{"kind":"definition","module":"Mathlib.Topology.Basic","object_id":"object-92b6fae90fbfdeed04f487ed688e06ad170e44a8b3356d6967f5b93f430b8f59","qualified_name":"TopologicalSpace.ofClosed","statement":"{X : Type u} →\n  (T : Set.{u} (Set.{u} X)) →\n    @Membership.mem.{u, u} (Set.{u} X) (Set.{u} (Set.{u} X)) (@Set.instMembership.{u} (Set.{u} X)) T\n        (@EmptyCollection.emptyCollection.{u} (Set.{u} X) (@Set.instEmptyCollection.{u} X)) →\n      (∀ (A : Set.{u} (Set.{u} X)),\n          @LE.le.{u} (Set.{u} (Set.{u} X)) (@Set.instLE.{u} (Set.{u} X)) A T →\n            @Membership.mem.{u, u} (Set.{u} X) (Set.{u} (Set.{u} X)) (@Set.instMembership.{u} (Set.{u} X)) T\n              (@Set.sInter.{u} X A)) →\n        (∀ (A : Set.{u} X),\n            @Membership.mem.{u, u} (Set.{u} X) (Set.{u} (Set.{u} X)) (@Set.instMembership.{u} (Set.{u} X)) T A →\n              ∀ (B : Set.{u} X),\n                @Membership.mem.{u, u} (Set.{u} X) (Set.{u} (Set.{u} X)) (@Set.instMembership.{u} (Set.{u} X)) T B →\n                  @Membership.mem.{u, u} (Set.{u} X) (Set.{u} (Set.{u} X)) (@Set.instMembership.{u} (Set.{u} X)) T\n                    (@Union.union.{u} (Set.{u} X) (@Set.instUnion.{u} X) A B)) →\n          TopologicalSpace.{u} X"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-af76025e95262b2405897a7e5d7dfeb22dce5dd860169faccf03b6281cd8b9d9","qualified_name":"_aux_Mathlib_Combinatorics_SimpleGraph_Basic___macroRules_aesop_graph?_1","statement":"Lean.Macro"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-048f8d81ff5d76675e4d8ac9e993d92cb0e7309aa5c8c7eee38d0d683003e348","qualified_name":"_aux_Mathlib_Combinatorics_SimpleGraph_Basic___macroRules_aesop_graph_1","statement":"Lean.Macro"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-c5bbc371327d046ea20b0470b23a133710fea8dfa2e9ad230fc9f8d815622cc6","qualified_name":"_aux_Mathlib_Combinatorics_SimpleGraph_Basic___macroRules_aesop_graph_nonterminal_1","statement":"Lean.Macro"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-e61ae23f3ee4faaf45a9d1a0c083003864f586569e64fd89d8a577c5bf489f47","qualified_name":"_aux_Mathlib_Order_Basic___unexpand_Order_Preimage_1","statement":"Lean.PrettyPrinter.Unexpander"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5345e965be111158e8527ca953b058b36eebbfecb6c2c3b58336a8e5a377fbf3","qualified_name":"_private.Mathlib.Algebra.Group.Basic.0.add_add_add_comm'._proof_1_1","statement":"∀ {G : Type u_1} [inst : AddCommSemigroup.{u_1} G] (a b c d : G),\n  @Eq.{u_1 + 1} G\n    (@HAdd.hAdd.{u_1, u_1, u_1} G G G\n      (@instHAdd.{u_1} G (@AddCommMagma.toAdd.{u_1} G (@AddCommSemigroup.toAddCommMagma.{u_1} G inst)))\n      (@HAdd.hAdd.{u_1, u_1, u_1} G G G\n        (@instHAdd.{u_1} G (@AddCommMagma.toAdd.{u_1} G (@AddCommSemigroup.toAddCommMagma.{u_1} G inst)))\n        (@HAdd.hAdd.{u_1, u_1, u_1} G G G\n          (@instHAdd.{u_1} G (@AddCommMagma.toAdd.{u_1} G (@AddCommSemigroup.toAddCommMagma.{u_1} G inst))) a b)\n        c)\n      d)\n    (@HAdd.hAdd.{u_1, u_1, u_1} G G G\n      (@instHAdd.{u_1} G (@AddCommMagma.toAdd.{u_1} G (@AddCommSemigroup.toAddCommMagma.{u_1} G inst)))\n      (@HAdd.hAdd.{u_1, u_1, u_1} G G G\n        (@instHAdd.{u_1} G (@AddCommMagma.toAdd.{u_1} G (@AddCommSemigroup.toAddCommMagma.{u_1} G inst)))\n        (@HAdd.hAdd.{u_1, u_1, u_1} G G G\n          (@instHAdd.{u_1} G (@AddCommMagma.toAdd.{u_1} G (@AddCommSemigroup.toAddCommMagma.{u_1} G inst))) a c)\n        b)\n      d)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-f97de23a4f7006e5a45b3ae9a49b8f4659d335b1538e2de8b30faeb00a8e5adf","qualified_name":"_private.Mathlib.Order.Basic.0._aux_Mathlib_Order_Basic___unexpand_StrongLT_1","statement":"Lean.PrettyPrinter.Unexpander"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-0978ed1d9d284d0cae6275d29afee47dfa0c9c171c817273ab489681f0afa262","qualified_name":"_private.Mathlib.Order.Basic.0.«_aux_Mathlib_Order_Basic___macroRules__private_Mathlib_Order_Basic_0_term_≺__1»","statement":"Lean.Macro"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-31f506af58f2cc6d5372747161f86ca658acc3e0c06dff68595bd1689b634267","qualified_name":"_private.Mathlib.Order.Basic.0.«term_≺_»","statement":"Lean.TrailingParserDescr"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-0160fceed45f05b3c34f90fb69eee3ebe62eda7b252c8e1997870f20eade0f0a","qualified_name":"addConj_eq_zero_iff","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n          (@instHAdd.{u_3} G\n            (@AddZero.toAdd.{u_3} G\n              (@AddZeroClass.toAddZero.{u_3} G\n                (@AddMonoid.toAddZeroClass.{u_3} G\n                  (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n          a b)\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          a))\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G b\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b0eccaebb8d5c0f32eac5712f6b2c76487ac2f93abff85c98ea0d7e52661456d","qualified_name":"add_add_add_comm","statement":"∀ {G : Type u_3} [inst : AddCommSemigroup.{u_3} G] (a b c d : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst)))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) a b)\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) c d))\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst)))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) a c)\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) b d))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ba526b9668cfed5f03b06b8c7743ea8802da8f9879d0da7c56ba7c0ae3ff0e71","qualified_name":"add_add_add_comm'","statement":"∀ {G : Type u_3} [inst : AddCommSemigroup.{u_3} G] (a b c d : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst)))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst)))\n        (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n          (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) a b)\n        c)\n      d)\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst)))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst)))\n        (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n          (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) a c)\n        b)\n      d)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-9d0d7f0c5f7e55ce0e583dd93f7b60f7c09bd63db5d389bcadc9740980b5cfad","qualified_name":"add_add_neg_add_cancel","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a b)\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          b)\n        c))\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      a c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-dfd05790db7863c8c7524acd0b69b280bf407948f4dd791ac42b84a00d7a16a7","qualified_name":"add_add_neg_cancel'_right","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G\n                (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n      a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        b\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G\n                (@SubtractionCommMonoid.toSubtractionMonoid.{u_3} G\n                  (@AddCommGroup.toDivisionAddCommMonoid.{u_3} G inst)))))\n          a)))\n    b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-124fc0f06235c24eba62869892b2ace78a45f83f6b6e298a40b8bd4afb8c820f","qualified_name":"add_add_sub_cancel","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G\n                (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        a c)\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        b c))\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G\n                (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n      a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-788e45287284bd36db490e3444f6ee16082cd8d82e180c47f5eaa7177ad52b36","qualified_name":"add_comm_sub","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a b)\n      c)\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      a\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        c b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-35dd294b9c32f476eb32c828dbe6a48ae3d4869ddf82a366050e3a0668e99323","qualified_name":"add_eq_left","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M]\n  [@IsLeftCancelAdd.{u_4} M\n      (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Eq.{u_4 + 1} M\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n        a b)\n      a)\n    (@Eq.{u_4 + 1} M b\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a2429e42b9d72b92ab57686fa9621473ed58b8c8740898614fed0792864cd987","qualified_name":"add_eq_of_eq_add_neg","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        c\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          b)) →\n    @Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a b)\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-972a503bd1eb3409b800f1fff5793e7c72fb85b36220c46502f66e747f2f4742","qualified_name":"add_eq_of_eq_neg_add","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G b\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          a)\n        c) →\n    @Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a b)\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-4562114b805df1a4266e2ce2e5e0a7705cfae84c3a7a805176eec47193f17c98","qualified_name":"add_eq_of_eq_sub","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G a\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) c b) →\n    @Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a b)\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-1a2d98eeca02f4bb1e29a9a61ff2ab9d927f3c24e7ec419570fa56f75cead67c","qualified_name":"add_eq_of_eq_sub'","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G b\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        c a) →\n    @Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        a b)\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-47e40c6cf669ea5f1fe08611d4103263dca7f68900acd4a53d5123a20c62bb9b","qualified_name":"add_eq_right","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M]\n  [@IsRightCancelAdd.{u_4} M\n      (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Eq.{u_4 + 1} M\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n        a b)\n      b)\n    (@Eq.{u_4 + 1} M a\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-9b43c33fe91c3a54916a54b53dedb12f8a87488080f028258f0a34b686bd4691","qualified_name":"add_eq_zero_iff_eq_neg","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G a\n      (@Neg.neg.{u_3} G\n        (@NegZeroClass.toNeg.{u_3} G\n          (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n        b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-644cfea00dbf736fb3cd0bc3a5ce67a0dd30a11919f679e157264e70f6af6222","qualified_name":"add_eq_zero_iff_eq_neg'","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G b\n      (@Neg.neg.{u_3} G\n        (@NegZeroClass.toNeg.{u_3} G\n          (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n        a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-185249a80a4df63cb0525e55cc19afdccccd975e0f690d91cf78640ffb80a6be","qualified_name":"add_eq_zero_iff_neg_eq","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G\n      (@Neg.neg.{u_3} G\n        (@NegZeroClass.toNeg.{u_3} G\n          (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n        a)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-8615c371ac9849fd2026f975a37c73a42a088dc079becc59d1efb7bd707cf179","qualified_name":"add_eq_zero_iff_neg_eq'","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G\n      (@Neg.neg.{u_3} G\n        (@NegZeroClass.toNeg.{u_3} G\n          (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n        b)\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ad80a6a890672ae97daa96d860a9184e96027b6a846c3753b0c350f9c53d665c","qualified_name":"add_left_comm","statement":"∀ {G : Type u_3} [inst : AddCommSemigroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) b c))\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) b\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) a c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-82f45067ee2cea2c486a35b8edae41abdeb524ea4c07230258f6a11ab54eb1fc","qualified_name":"add_left_iterate","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] (a : M) (n : Nat),\n  @Eq.{u_4 + 1} (M → M)\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HAdd.hAdd.{u_4, u_4, u_4} M M M\n          (@instHAdd.{u_4} M\n            (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n          a x)\n      n)\n    fun x =>\n    @HAdd.hAdd.{u_4, u_4, u_4} M M M\n      (@instHAdd.{u_4} M\n        (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n      (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n        (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) n a)\n      x"},{"kind":"definition","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f844658c0059b2cc852d0e72dc6c61982eae655b74c3d94c7c666020097be3e4","qualified_name":"add_left_iterate._f","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] (a : M) (x : Nat)\n  (f :\n    @Nat.below.{0}\n      (fun x =>\n        @Eq.{u_4 + 1} (M → M)\n          (@Nat.iterate.{u_4 + 1} M\n            (fun x =>\n              @HAdd.hAdd.{u_4, u_4, u_4} M M M\n                (@instHAdd.{u_4} M\n                  (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n                a x)\n            x)\n          fun x_1 =>\n          @HAdd.hAdd.{u_4, u_4, u_4} M M M\n            (@instHAdd.{u_4} M\n              (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n            (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n              (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) x a)\n            x_1)\n      x),\n  @Eq.{u_4 + 1} (M → M)\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HAdd.hAdd.{u_4, u_4, u_4} M M M\n          (@instHAdd.{u_4} M\n            (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n          a x)\n      x)\n    fun x_1 =>\n    @HAdd.hAdd.{u_4, u_4, u_4} M M M\n      (@instHAdd.{u_4} M\n        (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n      (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n        (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) x a)\n      x_1"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5ecf6c1755f8f7cb36b13e3395c77586a14f12ff450b6d5663e04c85043d4d74","qualified_name":"add_left_iterate_apply","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] {n : Nat} (a b : M),\n  @Eq.{u_4 + 1} M\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HAdd.hAdd.{u_4, u_4, u_4} M M M\n          (@instHAdd.{u_4} M\n            (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n          a x)\n      n b)\n    (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n      (@instHAdd.{u_4} M\n        (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n      (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n        (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) n a)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-4aa4bb540daf511940d5bf08813c5b94291af416ea2eca11fa63d2e5fffc14fe","qualified_name":"add_left_iterate_apply_self","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] (a : M) (n : Nat),\n  @Eq.{u_4 + 1} M\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HAdd.hAdd.{u_4, u_4, u_4} M M M\n          (@instHAdd.{u_4} M\n            (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n          a x)\n      n a)\n    (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n      (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst)))\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) n\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b774c958f5e965bf38699bd6c49ef16384e78afc670cbb6f6c17f72d6256b827","qualified_name":"add_left_iterate_apply_zero","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] {n : Nat} (a : M),\n  @Eq.{u_4 + 1} M\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HAdd.hAdd.{u_4, u_4, u_4} M M M\n          (@instHAdd.{u_4} M\n            (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n          a x)\n      n\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))))\n    (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n      (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) n a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ddfd58d053634f3fd70fb3c812164f19f2e7971b16d6d950a76d8000500eee01","qualified_name":"add_left_surjective","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a : G),\n  @Function.Surjective.{u_3 + 1, u_3 + 1} G G fun x =>\n    @HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      a x"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-77c7ecde54b0435f621afff74743abe6bef6c5c2dc26416c90a7815a87731460","qualified_name":"add_ne_left","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M]\n  [@IsLeftCancelAdd.{u_4} M\n      (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Ne.{u_4 + 1} M\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n        a b)\n      a)\n    (@Ne.{u_4 + 1} M b\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-149af20496688fb25ed7c91c55f5d3244ea95ccfb2141c5df7bb7c532a42fd84","qualified_name":"add_ne_right","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M]\n  [@IsRightCancelAdd.{u_4} M\n      (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Ne.{u_4 + 1} M\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n        a b)\n      b)\n    (@Ne.{u_4 + 1} M a\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-6ad627d953d6ce30896d304ecfe2322bcd1dc67518c3ddc595b7e79f55db3438","qualified_name":"add_neg_add_add_cancel","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          b))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        b c))\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      a c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-38f05c8096c7fff3a3a7599cc18cb1654812267161532604cdef3c17c122cca1","qualified_name":"add_neg_eq_add_neg_iff_add_eq_add","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] {a b c d : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        a\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G\n                (@SubtractionCommMonoid.toSubtractionMonoid.{u_3} G\n                  (@AddCommGroup.toDivisionAddCommMonoid.{u_3} G inst)))))\n          b))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        c\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G\n                (@SubtractionCommMonoid.toSubtractionMonoid.{u_3} G\n                  (@AddCommGroup.toDivisionAddCommMonoid.{u_3} G inst)))))\n          d)))\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        a d)\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        c b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-0d5f2042e0e0bf9ca968719e33e5c0abde5837e00c97339651bf750ef4d247cf","qualified_name":"add_neg_eq_iff_eq_add","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          b))\n      c)\n    (@Eq.{u_3 + 1} G a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        c b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d144e9d19b2860264f600746d2d3bf0118a2c03767a83d779e7acdb394f8a861","qualified_name":"add_neg_eq_of_eq_add","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        c b) →\n    @Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          b))\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-cfb057144ed4a94ee50a2e872094bd08b5fcaf785e65927ea196e97282c0b786","qualified_name":"add_neg_eq_zero","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          b))\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-85142ceb493d497ebff9a8ae8fb360b51ba33e16622aa3dc509de55c56dfb1c1","qualified_name":"add_one_zsmul","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a : G) (n : Int),\n  @Eq.{u_3 + 1} G\n    (@HSMul.hSMul.{0, u_3, u_3} Int G G\n      (@instHSMul.{0, u_3} Int G\n        (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n      (@HAdd.hAdd.{0, 0, 0} Int Int Int (@instHAdd.{0} Int Int.instAdd) n\n        (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1))))\n      a)\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      (@HSMul.hSMul.{0, u_3, u_3} Int G G\n        (@instHSMul.{0, u_3} Int G\n          (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n        n a)\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ce1c712340e18cee88863d63167f7a7e1b6327653f8c753c80fcc084427ea0ae","qualified_name":"add_right_comm","statement":"∀ {G : Type u_3} [inst : AddCommSemigroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst)))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) a b)\n      c)\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst)))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c7100567b8e0590bb5fdafa5ba50364e84d7ec689859c434c6f0f960f7275674","qualified_name":"add_right_iterate","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] (a : M) (n : Nat),\n  @Eq.{u_4 + 1} (M → M)\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HAdd.hAdd.{u_4, u_4, u_4} M M M\n          (@instHAdd.{u_4} M\n            (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n          x a)\n      n)\n    fun x =>\n    @HAdd.hAdd.{u_4, u_4, u_4} M M M\n      (@instHAdd.{u_4} M\n        (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n      x\n      (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n        (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) n a)"},{"kind":"definition","module":"Mathlib.Algebra.Group.Basic","object_id":"object-59c1a586343611d1e7cb2b73f1830d5b22716c2f21f1c9380bb929a3353c7b97","qualified_name":"add_right_iterate._f","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] (a : M) (x : Nat)\n  (f :\n    @Nat.below.{0}\n      (fun x =>\n        @Eq.{u_4 + 1} (M → M)\n          (@Nat.iterate.{u_4 + 1} M\n            (fun x =>\n              @HAdd.hAdd.{u_4, u_4, u_4} M M M\n                (@instHAdd.{u_4} M\n                  (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n                x a)\n            x)\n          fun x_1 =>\n          @HAdd.hAdd.{u_4, u_4, u_4} M M M\n            (@instHAdd.{u_4} M\n              (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n            x_1\n            (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n              (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) x a))\n      x),\n  @Eq.{u_4 + 1} (M → M)\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HAdd.hAdd.{u_4, u_4, u_4} M M M\n          (@instHAdd.{u_4} M\n            (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n          x a)\n      x)\n    fun x_1 =>\n    @HAdd.hAdd.{u_4, u_4, u_4} M M M\n      (@instHAdd.{u_4} M\n        (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n      x_1\n      (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n        (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) x a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-8183483996228c16bf2840e3c6521c6f02282cc60e92cbf6398dad561e55e396","qualified_name":"add_right_iterate_apply","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] {n : Nat} (a b : M),\n  @Eq.{u_4 + 1} M\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HAdd.hAdd.{u_4, u_4, u_4} M M M\n          (@instHAdd.{u_4} M\n            (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n          x a)\n      n b)\n    (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n      (@instHAdd.{u_4} M\n        (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n      b\n      (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n        (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) n a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2afe95944c1f234f4f77ed220b8cae7bca49ff352a3f2d16b7a6b9db1b8d67a2","qualified_name":"add_right_iterate_apply_self","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] (a : M) (n : Nat),\n  @Eq.{u_4 + 1} M\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HAdd.hAdd.{u_4, u_4, u_4} M M M\n          (@instHAdd.{u_4} M\n            (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n          x a)\n      n a)\n    (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n      (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst)))\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) n\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ff16f3fc2449f06be9d38e32d7cd581ebc22ed405cfa5d403ff1cfec253b1319","qualified_name":"add_right_iterate_apply_zero","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] {n : Nat} (a : M),\n  @Eq.{u_4 + 1} M\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HAdd.hAdd.{u_4, u_4, u_4} M M M\n          (@instHAdd.{u_4} M\n            (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n          x a)\n      n\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))))\n    (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n      (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) n a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-44ca8a4919cb3477e7ba7ab998715477f2ae6f0f4bf87c29d039c61a54419c1d","qualified_name":"add_right_surjective","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a : G),\n  @Function.Surjective.{u_3 + 1, u_3 + 1} G G fun x =>\n    @HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      x a"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-da41df0408f69fecc1c65755be980936cb93fad1de6d53f1cb06ae2cd8d1b103","qualified_name":"add_rotate","statement":"∀ {G : Type u_3} [inst : AddCommSemigroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst)))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) a b)\n      c)\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst)))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) b c)\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-4e1c782e03bf08cc3ee116df77dfaee09d3b2c74ffbdbd20ab3c59475a4f05f6","qualified_name":"add_rotate'","statement":"∀ {G : Type u_3} [inst : AddCommSemigroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) b c))\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) b\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G (@AddCommMagma.toAdd.{u_3} G (@AddCommSemigroup.toAddCommMagma.{u_3} G inst))) c a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-04eae78334ae020a17b2b4fcc54e44b29a091ac902c6ea80df46b362a7646e8d","qualified_name":"add_self_zsmul","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a : G) (n : Int),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      (@HSMul.hSMul.{0, u_3, u_3} Int G G\n        (@instHSMul.{0, u_3} Int G\n          (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n        n a)\n      a)\n    (@HSMul.hSMul.{0, u_3, u_3} Int G G\n      (@instHSMul.{0, u_3} Int G\n        (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n      (@HAdd.hAdd.{0, 0, 0} Int Int Int (@instHAdd.{0} Int Int.instAdd) n\n        (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1))))\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b1e34247fbc6a25110bbfc9a4b514edb8b3fd3d4c818aac80faf7d4b6c59590d","qualified_name":"add_sub","statement":"∀ {G : Type u_3} [inst : SubNegMonoid.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G inst)))))\n      a (@HSub.hSub.{u_3, u_3, u_3} G G G (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G inst)) b c))\n    (@HSub.hSub.{u_3, u_3, u_3} G G G (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G inst))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G inst)))))\n        a b)\n      c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-73309cb564c13ff00706de3ae287e84cae9a7a68c5a3842521c33ab4e5e824db","qualified_name":"add_sub_add_comm","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b c d : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α\n                  (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n        a b)\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α\n                  (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n        c d))\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a c)\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        b d))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-0a9552b31b05d2fb5aca4a6527de71acdeb337e0d637392af4df536922ac0907","qualified_name":"add_sub_add_left_eq_sub","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G\n        (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        c a)\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        c b))\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G\n        (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n      a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-4e6243cfea36aded87ddb6e56b8d7dd1f509b6dca3581b590b3e4b3fd15052c9","qualified_name":"add_sub_add_right_eq_sub","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst)))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a c)\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        b c))\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f0514cb09234e595ba42cb7ce0c5c42f006a553799b2b21ad180e82fc6611463","qualified_name":"add_sub_assoc'","statement":"∀ {G : Type u_3} [inst : SubNegMonoid.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G inst)))))\n      a (@HSub.hSub.{u_3, u_3, u_3} G G G (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G inst)) b c))\n    (@HSub.hSub.{u_3, u_3, u_3} G G G (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G inst))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G inst)))))\n        a b)\n      c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-cf04fba30812fba3b4e112703742572817895e4218242a4628f02cd55b240152","qualified_name":"add_sub_cancel","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G\n                (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n      a\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        b a))\n    b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-6dbd9ae085a410df57599697e96d03012d2a90d803de46babe38a50499540f15","qualified_name":"add_sub_cancel_left","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G\n        (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        a b)\n      a)\n    b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-40670a41c11cb6313654db0a4468a658758a39cb62f3194e6c6cb792b6d141be","qualified_name":"add_sub_left_comm","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      a\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        b c))\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      b\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b0d9dccb30f73bdc79cb343fb773e43d5b0d2fb202abf2eb2a3f8637682d7dc3","qualified_name":"add_sub_one_nsmul","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] {n : Nat},\n  @Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    ∀ (a : M),\n      @Eq.{u_4 + 1} M\n        (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n          (@instHAdd.{u_4} M\n            (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n          (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n            (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst)))\n            (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) n\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            a)\n          a)\n        (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n          (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) n a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-85ac837095553d04c7240ca3fc7bfc72a6e19e5ef59205bf7154fc08a4102f9b","qualified_name":"add_sub_right_comm","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α\n                  (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n        a b)\n      c)\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-17f6f5ad2d3fa3cde5ec183effc6bd07079addc38bb3842f1a99150418b0212e","qualified_name":"add_sub_sub_cancel","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G\n        (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        a b)\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        a c))\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G\n                (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n      b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f898ba70fd417e1b19c54126123549a430ff89d5a92e6b476bc21b79e9379f6e","qualified_name":"add_zero_eq_id","statement":"∀ {M : Type u_4} [inst : AddZeroClass.{u_4} M],\n  @Eq.{u_4 + 1} (M → M)\n    (fun x =>\n      @HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst))) x\n        (@OfNat.ofNat.{u_4} M (nat_lit 0)\n          (@Zero.toOfNat0.{u_4} M (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst)))))\n    (@id.{u_4 + 1} M)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d5e61b41c6945b28fc7b5b20994cefdf08fa7e8a46d61c3ad189fbf87b2a2236","qualified_name":"add_zero_sub","statement":"∀ {G : Type u_3} [inst : SubNegMonoid.{u_3} G] (x y : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G inst)))))\n      x\n      (@HSub.hSub.{u_3, u_3, u_3} G G G (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G inst))\n        (@OfNat.ofNat.{u_3} G (nat_lit 0)\n          (@Zero.toOfNat0.{u_3} G\n            (@AddZero.toZero.{u_3} G\n              (@AddZeroClass.toAddZero.{u_3} G\n                (@AddMonoid.toAddZeroClass.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G inst))))))\n        y))\n    (@HSub.hSub.{u_3, u_3, u_3} G G G (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G inst)) x y)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-835c6a7d5daf111b9dda42d5c7d5aab0158cb9f0bed28551db56d39fffa38bfe","qualified_name":"add_zsmul","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a : G) (m n : Int),\n  @Eq.{u_3 + 1} G\n    (@HSMul.hSMul.{0, u_3, u_3} Int G G\n      (@instHSMul.{0, u_3} Int G\n        (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n      (@HAdd.hAdd.{0, 0, 0} Int Int Int (@instHAdd.{0} Int Int.instAdd) m n) a)\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      (@HSMul.hSMul.{0, u_3, u_3} Int G G\n        (@instHSMul.{0, u_3} Int G\n          (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n        m a)\n      (@HSMul.hSMul.{0, u_3, u_3} Int G G\n        (@instHSMul.{0, u_3} Int G\n          (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n        n a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c4bacdacee23be4ffae3b68dd84b75971410968fcb9d24ee0416c9789daed93a","qualified_name":"add_zsmul_add","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a b : G) (n : Int),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      (@HSMul.hSMul.{0, u_3, u_3} Int G G\n        (@instHSMul.{0, u_3} Int G\n          (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n        n\n        (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n          (@instHAdd.{u_3} G\n            (@AddZero.toAdd.{u_3} G\n              (@AddZeroClass.toAddZero.{u_3} G\n                (@AddMonoid.toAddZeroClass.{u_3} G\n                  (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n          a b))\n      a)\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      a\n      (@HSMul.hSMul.{0, u_3, u_3} Int G G\n        (@instHSMul.{0, u_3} Int G\n          (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n        n\n        (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n          (@instHAdd.{u_3} G\n            (@AddZero.toAdd.{u_3} G\n              (@AddZeroClass.toAddZero.{u_3} G\n                (@AddMonoid.toAddZeroClass.{u_3} G\n                  (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n          b a)))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-70d687df75d432e2fecd1687b2d1dcdf1ecee8692ecadfe94bee1e7fb1cca54d","qualified_name":"add_zsmul_self","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a : G) (n : Int),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      a\n      (@HSMul.hSMul.{0, u_3, u_3} Int G G\n        (@instHSMul.{0, u_3} Int G\n          (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n        n a))\n    (@HSMul.hSMul.{0, u_3, u_3} Int G G\n      (@instHSMul.{0, u_3} Int G\n        (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n      (@HAdd.hAdd.{0, 0, 0} Int Int Int (@instHAdd.{0} Int Int.instAdd) n\n        (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1))))\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-75eb069bc7c8b652d113e270aab64528a548075320cae23678b4237697b2fcc8","qualified_name":"additive_of_symm_of_total","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : AddMonoid.{u_2} β] (p r : α → α → Prop) [@Std.Total.{u_1 + 1} α r]\n  (f : α → α → β) [@Std.Symm.{u_1 + 1} α p],\n  (∀ {a b : α},\n      p a b →\n        @Eq.{u_2 + 1} β\n          (@HAdd.hAdd.{u_2, u_2, u_2} β β β\n            (@instHAdd.{u_2} β\n              (@AddZero.toAdd.{u_2} β (@AddZeroClass.toAddZero.{u_2} β (@AddMonoid.toAddZeroClass.{u_2} β inst))))\n            (f a b) (f b a))\n          (@OfNat.ofNat.{u_2} β (nat_lit 0)\n            (@Zero.toOfNat0.{u_2} β\n              (@AddZero.toZero.{u_2} β (@AddZeroClass.toAddZero.{u_2} β (@AddMonoid.toAddZeroClass.{u_2} β inst)))))) →\n    (∀ {a b c : α},\n        r a b →\n          r b c →\n            p a b →\n              p b c →\n                p a c →\n                  @Eq.{u_2 + 1} β (f a c)\n                    (@HAdd.hAdd.{u_2, u_2, u_2} β β β\n                      (@instHAdd.{u_2} β\n                        (@AddZero.toAdd.{u_2} β\n                          (@AddZeroClass.toAddZero.{u_2} β (@AddMonoid.toAddZeroClass.{u_2} β inst))))\n                      (f a b) (f b c))) →\n      ∀ {a b c : α},\n        p a b →\n          p b c →\n            p a c →\n              @Eq.{u_2 + 1} β (f a c)\n                (@HAdd.hAdd.{u_2, u_2, u_2} β β β\n                  (@instHAdd.{u_2} β\n                    (@AddZero.toAdd.{u_2} β (@AddZeroClass.toAddZero.{u_2} β (@AddMonoid.toAddZeroClass.{u_2} β inst))))\n                  (f a b) (f b c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-24e1bfd4317ce2b94508375710acf37afbd9c1bb51c4d7342c56d5ce329ab41c","qualified_name":"additive_of_symmetric_of_total","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : AddMonoid.{u_2} β] (p r : α → α → Prop) [@Std.Total.{u_1 + 1} α r]\n  (f : α → α → β) [@Std.Symm.{u_1 + 1} α p],\n  (∀ {a b : α},\n      p a b →\n        @Eq.{u_2 + 1} β\n          (@HAdd.hAdd.{u_2, u_2, u_2} β β β\n            (@instHAdd.{u_2} β\n              (@AddZero.toAdd.{u_2} β (@AddZeroClass.toAddZero.{u_2} β (@AddMonoid.toAddZeroClass.{u_2} β inst))))\n            (f a b) (f b a))\n          (@OfNat.ofNat.{u_2} β (nat_lit 0)\n            (@Zero.toOfNat0.{u_2} β\n              (@AddZero.toZero.{u_2} β (@AddZeroClass.toAddZero.{u_2} β (@AddMonoid.toAddZeroClass.{u_2} β inst)))))) →\n    (∀ {a b c : α},\n        r a b →\n          r b c →\n            p a b →\n              p b c →\n                p a c →\n                  @Eq.{u_2 + 1} β (f a c)\n                    (@HAdd.hAdd.{u_2, u_2, u_2} β β β\n                      (@instHAdd.{u_2} β\n                        (@AddZero.toAdd.{u_2} β\n                          (@AddZeroClass.toAddZero.{u_2} β (@AddMonoid.toAddZeroClass.{u_2} β inst))))\n                      (f a b) (f b c))) →\n      ∀ {a b c : α},\n        p a b →\n          p b c →\n            p a c →\n              @Eq.{u_2 + 1} β (f a c)\n                (@HAdd.hAdd.{u_2, u_2, u_2} β β β\n                  (@instHAdd.{u_2} β\n                    (@AddZero.toAdd.{u_2} β (@AddZeroClass.toAddZero.{u_2} β (@AddMonoid.toAddZeroClass.{u_2} β inst))))\n                  (f a b) (f b c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5dd93dd2b975236997aa81d66af9349f0ef2563342f74aa74040dc6a03ef96cb","qualified_name":"additive_of_total","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : AddMonoid.{u_2} β] (r : α → α → Prop) [@Std.Total.{u_1 + 1} α r] (f : α → α → β)\n  (p : α → Prop),\n  (∀ {a b : α},\n      p a →\n        p b →\n          @Eq.{u_2 + 1} β\n            (@HAdd.hAdd.{u_2, u_2, u_2} β β β\n              (@instHAdd.{u_2} β\n                (@AddZero.toAdd.{u_2} β (@AddZeroClass.toAddZero.{u_2} β (@AddMonoid.toAddZeroClass.{u_2} β inst))))\n              (f a b) (f b a))\n            (@OfNat.ofNat.{u_2} β (nat_lit 0)\n              (@Zero.toOfNat0.{u_2} β\n                (@AddZero.toZero.{u_2} β\n                  (@AddZeroClass.toAddZero.{u_2} β (@AddMonoid.toAddZeroClass.{u_2} β inst)))))) →\n    (∀ {a b c : α},\n        r a b →\n          r b c →\n            p a →\n              p b →\n                p c →\n                  @Eq.{u_2 + 1} β (f a c)\n                    (@HAdd.hAdd.{u_2, u_2, u_2} β β β\n                      (@instHAdd.{u_2} β\n                        (@AddZero.toAdd.{u_2} β\n                          (@AddZeroClass.toAddZero.{u_2} β (@AddMonoid.toAddZeroClass.{u_2} β inst))))\n                      (f a b) (f b c))) →\n      ∀ {a b c : α},\n        p a →\n          p b →\n            p c →\n              @Eq.{u_2 + 1} β (f a c)\n                (@HAdd.hAdd.{u_2, u_2, u_2} β β β\n                  (@instHAdd.{u_2} β\n                    (@AddZero.toAdd.{u_2} β (@AddZeroClass.toAddZero.{u_2} β (@AddMonoid.toAddZeroClass.{u_2} β inst))))\n                  (f a b) (f b c))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-53acc710760aa2df6e1a904ee9ebd62a066898738114152614fc01093a96f220","qualified_name":"aesop_graph","statement":"Lean.ParserDescr"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-6d7b5a86e44b2b5b840f7f9e39dda58e0ac44fcb0c420392f0504530bf5b1f69","qualified_name":"aesop_graph?","statement":"Lean.ParserDescr"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-58453b291493339350edf686e055da9e069e8eac5b9ee5848f4dc8dc2bd20178","qualified_name":"aesop_graph_nonterminal","statement":"Lean.ParserDescr"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-74316fbcd5a4d47d4e478ab3681e71abc154c40c25233b07d747fefdd22b1c94","qualified_name":"associative_of_commutative_of_le","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {f : α → α → α},\n  @Std.Commutative.{u_2 + 1} α f →\n    (∀ (a b c : α),\n        @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) (f (f a b) c) (f a (f b c))) →\n      @Std.Associative.{u_2 + 1} α f"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-7befd29495643b14103b95da26e82e0c312d838a747f650e1ca59bcea6b311bd","qualified_name":"boole_nsmul","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] (P : Prop) [inst_1 : Decidable P] (a : M),\n  @Eq.{u_4 + 1} M\n    (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n      (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst)))\n      (@ite.{1} Nat P inst_1 (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))\n      a)\n    (@ite.{u_4 + 1} M P inst_1 a\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-c8f573a44e91101c6fcb43b47b4b5fca99455791e75a5805bcc23630e7ca8799","qualified_name":"cast_bijective","statement":"∀ {α β : Sort u_3} (h : @Eq.{u_3 + 1} (Sort u_3) α β), @Function.Bijective.{u_3, u_3} α β (@cast.{u_3} α β h)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-5fef20e58cdf0484f92c7f2ce6db2c66c00d845b6a6143e4ba373be2454e470e","qualified_name":"cast_inj","statement":"∀ {α β : Type u} (h : @Eq.{u + 2} (Type u) α β) {x y : α},\n  Iff (@Eq.{u + 1} β (@cast.{u + 1} α β h x) (@cast.{u + 1} α β h y)) (@Eq.{u + 1} α x y)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-f5ec324ab7b44719f003799cc13c326bb38c7e6edd5bfd43ccb3acf74c524c3d","qualified_name":"commutative_of_le","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : PartialOrder.{u_2} α] {f : β → β → α},\n  (∀ (a b : β), @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) (f a b) (f b a)) →\n    ∀ (a b : β), @Eq.{u_2 + 1} α (f a b) (f b a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-53a1e8faaadb8fff7ef3a6fa83aec397ee9741b64316fb16c6c43e902269e1df","qualified_name":"comp_add_left","statement":"∀ {α : Type u_1} [inst : AddSemigroup.{u_1} α] (x y : α),\n  @Eq.{u_1 + 1} (α → α)\n    (@Function.comp.{u_1 + 1, u_1 + 1, u_1 + 1} α α α\n      (fun x_1 => @HAdd.hAdd.{u_1, u_1, u_1} α α α (@instHAdd.{u_1} α (@AddSemigroup.toAdd.{u_1} α inst)) x x_1)\n      fun x => @HAdd.hAdd.{u_1, u_1, u_1} α α α (@instHAdd.{u_1} α (@AddSemigroup.toAdd.{u_1} α inst)) y x)\n    fun x_1 =>\n    @HAdd.hAdd.{u_1, u_1, u_1} α α α (@instHAdd.{u_1} α (@AddSemigroup.toAdd.{u_1} α inst))\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α (@instHAdd.{u_1} α (@AddSemigroup.toAdd.{u_1} α inst)) x y) x_1"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2b6506d8b574dca96d78a5fd59175aa730bb8617f8992fc276c175f4dd20f7f2","qualified_name":"comp_add_right","statement":"∀ {α : Type u_1} [inst : AddSemigroup.{u_1} α] (x y : α),\n  @Eq.{u_1 + 1} (α → α)\n    (@Function.comp.{u_1 + 1, u_1 + 1, u_1 + 1} α α α\n      (fun x_1 => @HAdd.hAdd.{u_1, u_1, u_1} α α α (@instHAdd.{u_1} α (@AddSemigroup.toAdd.{u_1} α inst)) x_1 x)\n      fun x => @HAdd.hAdd.{u_1, u_1, u_1} α α α (@instHAdd.{u_1} α (@AddSemigroup.toAdd.{u_1} α inst)) x y)\n    fun x_1 =>\n    @HAdd.hAdd.{u_1, u_1, u_1} α α α (@instHAdd.{u_1} α (@AddSemigroup.toAdd.{u_1} α inst)) x_1\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α (@instHAdd.{u_1} α (@AddSemigroup.toAdd.{u_1} α inst)) y x)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c8a7c13ba06386056b0efe8959c1114fddb3b6a509af69e60161a129af118ae1","qualified_name":"comp_mul_left","statement":"∀ {α : Type u_1} [inst : Semigroup.{u_1} α] (x y : α),\n  @Eq.{u_1 + 1} (α → α)\n    (@Function.comp.{u_1 + 1, u_1 + 1, u_1 + 1} α α α\n      (fun x_1 => @HMul.hMul.{u_1, u_1, u_1} α α α (@instHMul.{u_1} α (@Semigroup.toMul.{u_1} α inst)) x x_1) fun x =>\n      @HMul.hMul.{u_1, u_1, u_1} α α α (@instHMul.{u_1} α (@Semigroup.toMul.{u_1} α inst)) y x)\n    fun x_1 =>\n    @HMul.hMul.{u_1, u_1, u_1} α α α (@instHMul.{u_1} α (@Semigroup.toMul.{u_1} α inst))\n      (@HMul.hMul.{u_1, u_1, u_1} α α α (@instHMul.{u_1} α (@Semigroup.toMul.{u_1} α inst)) x y) x_1"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-207a9bb279ad0473fc5e634f917f28d77e2826cdad2727b0bbcf3d36368ae74b","qualified_name":"comp_mul_right","statement":"∀ {α : Type u_1} [inst : Semigroup.{u_1} α] (x y : α),\n  @Eq.{u_1 + 1} (α → α)\n    (@Function.comp.{u_1 + 1, u_1 + 1, u_1 + 1} α α α\n      (fun x_1 => @HMul.hMul.{u_1, u_1, u_1} α α α (@instHMul.{u_1} α (@Semigroup.toMul.{u_1} α inst)) x_1 x) fun x =>\n      @HMul.hMul.{u_1, u_1, u_1} α α α (@instHMul.{u_1} α (@Semigroup.toMul.{u_1} α inst)) x y)\n    fun x_1 =>\n    @HMul.hMul.{u_1, u_1, u_1} α α α (@instHMul.{u_1} α (@Semigroup.toMul.{u_1} α inst)) x_1\n      (@HMul.hMul.{u_1, u_1, u_1} α α α (@instHMul.{u_1} α (@Semigroup.toMul.{u_1} α inst)) y x)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-76bcf144017c09e375e4088a4cf38972ac236d887d61c1f4b2862743072d78f5","qualified_name":"compare_of_injective_eq_compareOfLessAndEq","statement":"∀ {α : Type u_2} {β : Type u_3} (a b : α) [inst : LinearOrder.{u_3} β] [inst_1 : DecidableEq.{u_2 + 1} α] (f : α → β)\n  (inj : @Function.Injective.{u_2 + 1, u_3 + 1} α β f)\n  [inst_2 :\n    Decidable\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α\n          (@PartialOrder.toPreorder.{u_2} α\n            (@PartialOrder.lift.{u_2, u_3} α β (@LinearOrder.toPartialOrder.{u_3} β inst) f inj)))\n        a b)],\n  @Eq.{1} Ordering (@Ord.compare.{u_3} β (@LinearOrder.toOrd.{u_3} β inst) (f a) (f b))\n    (@compareOfLessAndEq.{u_2} α a b\n      (@Preorder.toLT.{u_2} α\n        (@PartialOrder.toPreorder.{u_2} α\n          (@PartialOrder.lift.{u_2, u_3} α β (@LinearOrder.toPartialOrder.{u_3} β inst) f inj)))\n      inst_2 inst_1)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-c9bd5d14ddbc1bf806d8ac403063f8bae5c5428a986a2e18561d15f875b4532c","qualified_name":"compl_ge","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α],\n  @Eq.{u_2 + 1} (α → α → Prop)\n    (@Compl.compl.{u_2} (α → α → Prop)\n      (@Pi.instCompl.{u_2, u_2} α (fun x1 => α → Prop) fun i =>\n        @Pi.instCompl.{u_2, 0} α (fun x2 => Prop) fun i => «Prop».instCompl)\n      fun x1 x2 =>\n      @GE.ge.{u_2} α\n        (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) x1 x2)\n    fun x1 x2 =>\n    @LT.lt.{u_2} α\n      (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) x1 x2"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-187be9b8f19e1e91438861e11a3d389859ace3d48ae71071b6f4989b6a0b4267","qualified_name":"compl_gt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α],\n  @Eq.{u_2 + 1} (α → α → Prop)\n    (@Compl.compl.{u_2} (α → α → Prop)\n      (@Pi.instCompl.{u_2, u_2} α (fun x1 => α → Prop) fun i =>\n        @Pi.instCompl.{u_2, 0} α (fun x2 => Prop) fun i => «Prop».instCompl)\n      fun x1 x2 =>\n      @GT.gt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) x1 x2)\n    fun x1 x2 =>\n    @LE.le.{u_2} α\n      (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) x1 x2"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-b1508d9a181c39d0e3279b46280d34cbe9b820ab0f0bcde6f43bcd4e5f03ab84","qualified_name":"compl_le","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α],\n  @Eq.{u_2 + 1} (α → α → Prop)\n    (@Compl.compl.{u_2} (α → α → Prop)\n      (@Pi.instCompl.{u_2, u_2} α (fun x1 => α → Prop) fun i =>\n        @Pi.instCompl.{u_2, 0} α (fun x2 => Prop) fun i => «Prop».instCompl)\n      fun x1 x2 =>\n      @LE.le.{u_2} α\n        (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) x1 x2)\n    fun x1 x2 =>\n    @GT.gt.{u_2} α\n      (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) x1 x2"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-54f2b6f8d86b3b99fa843954cee0f4bf0f7342e40022b6ee4e09875c9225debf","qualified_name":"compl_lt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α],\n  @Eq.{u_2 + 1} (α → α → Prop)\n    (@Compl.compl.{u_2} (α → α → Prop)\n      (@Pi.instCompl.{u_2, u_2} α (fun x1 => α → Prop) fun i =>\n        @Pi.instCompl.{u_2, 0} α (fun x2 => Prop) fun i => «Prop».instCompl)\n      fun x1 x2 =>\n      @LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) x1 x2)\n    fun x1 x2 =>\n    @GE.ge.{u_2} α\n      (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) x1 x2"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-e35219eabbf652c084fcd5dc1fc8245f8a1e22d52ec734841788faf181be6c5b","qualified_name":"completeBipartiteGraph","statement":"(V : Type u_1) → (W : Type u_2) → SimpleGraph.{max u_2 u_1} (Sum.{u_1, u_2} V W)"},{"kind":"theorem","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-331faa443026bded615cf9d0b32a311e09428e4291a1c624a2cc64660c70c7dc","qualified_name":"completeBipartiteGraph_adj","statement":"∀ (V : Type u_1) (W : Type u_2) (v w : Sum.{u_1, u_2} V W),\n  @Eq.{1} Prop (@SimpleGraph.Adj.{max u_2 u_1} (Sum.{u_1, u_2} V W) (completeBipartiteGraph.{u_1, u_2} V W) v w)\n    (Or\n      (And (@Eq.{1} Bool (@Sum.isLeft.{u_1, u_2} V W v) Bool.true)\n        (@Eq.{1} Bool (@Sum.isRight.{u_1, u_2} V W w) Bool.true))\n      (And (@Eq.{1} Bool (@Sum.isRight.{u_1, u_2} V W v) Bool.true)\n        (@Eq.{1} Bool (@Sum.isLeft.{u_1, u_2} V W w) Bool.true)))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a97f5cffd9d57629dde3e72457f7a680929a78972ab6a79fa9fe2994c77f9c04","qualified_name":"conj_eq_one_iff","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        (@HMul.hMul.{u_3, u_3, u_3} G G G\n          (@instHMul.{u_3} G\n            (@MulOne.toMul.{u_3} G\n              (@MulOneClass.toMulOne.{u_3} G\n                (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n          a b)\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          a))\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G b\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-972f027c4ae1ead49b60465969c40a03053f4a10c4a2715759dd411ce5c22fda","qualified_name":"const_div_involutive","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] (a : G),\n  @Function.Involutive.{u_3 + 1} G fun x =>\n    @HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G\n        (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n      a x"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f893ddd7c7a2db5cfb7f587bf3994902ca8e9d47c6e1bfbdfd1162fc01bab2c5","qualified_name":"const_sub_involutive","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] (a : G),\n  @Function.Involutive.{u_3 + 1} G fun x =>\n    @HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G\n        (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n      a x"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-4e6721a175cf94b3bc650f8100bb5e6e363d6521829c7923a32844bea2ea8df9","qualified_name":"dense_or_discrete","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] (a₁ a₂ : α),\n  Or\n    (∃ a,\n      And\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₁ a)\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a a₂))\n    (And\n      (∀ (a : α),\n        @LT.lt.{u_2} α\n            (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₁\n            a →\n          @LE.le.{u_2} α\n            (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₂ a)\n      (∀ (a : α),\n        @LT.lt.{u_2} α\n            (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a\n            a₂ →\n          @LE.le.{u_2} α\n            (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a\n            a₁))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-38958a832c1d35969820eccd0a0c749e665df787509b9afe182a97d8738df1d4","qualified_name":"dense_or_discrete'","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] (a₁ a₂ : α),\n  Or\n    (∃ a,\n      And\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a a₁)\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₂ a))\n    (And\n      (∀ (a : α),\n        @LT.lt.{u_2} α\n            (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a\n            a₁ →\n          @LE.le.{u_2} α\n            (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a a₂)\n      (∀ (a : α),\n        @LT.lt.{u_2} α\n            (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₂\n            a →\n          @LE.le.{u_2} α\n            (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₁\n            a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f2e158f68fb81fbd15bbb81f3ccafd66d74a1375de6fd955ad40830589604079","qualified_name":"dite_pow","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : Pow.{u_1, u_2} α β] (p : Prop) [inst_1 : Decidable p] (a : p → α)\n  (b : Not p → α) (c : β),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, u_2, u_1} α β α (@instHPow.{u_1, u_2} α β inst)\n      (@dite.{u_1 + 1} α p inst_1 (fun h => a h) fun h => b h) c)\n    (@dite.{u_1 + 1} α p inst_1 (fun h => @HPow.hPow.{u_1, u_2, u_1} α β α (@instHPow.{u_1, u_2} α β inst) (a h) c)\n      fun h => @HPow.hPow.{u_1, u_2, u_1} α β α (@instHPow.{u_1, u_2} α β inst) (b h) c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-94c23f8192c5bfe4ab856b5414093f16a55af3507e0bbced1c1b020200d02657","qualified_name":"dite_smul","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : SMul.{u_2, u_1} β α] (p : Prop) [inst_1 : Decidable p] (a : α) (b : p → β)\n  (c : Not p → β),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{u_2, u_1, u_1} β α α (@instHSMul.{u_2, u_1} β α inst)\n      (@dite.{u_2 + 1} β p inst_1 (fun h => b h) fun h => c h) a)\n    (@dite.{u_1 + 1} α p inst_1 (fun h => @HSMul.hSMul.{u_2, u_1, u_1} β α α (@instHSMul.{u_2, u_1} β α inst) (b h) a)\n      fun h => @HSMul.hSMul.{u_2, u_1, u_1} β α α (@instHSMul.{u_2, u_1} β α inst) (c h) a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-15932201c4647ebe417448b8b81bfd0ec0fcd76195b46feccce3b4767b8492d3","qualified_name":"dite_vadd","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : VAdd.{u_2, u_1} β α] (p : Prop) [inst_1 : Decidable p] (a : α) (b : p → β)\n  (c : Not p → β),\n  @Eq.{u_1 + 1} α\n    (@HVAdd.hVAdd.{u_2, u_1, u_1} β α α (@instHVAdd.{u_2, u_1} β α inst)\n      (@dite.{u_2 + 1} β p inst_1 (fun h => b h) fun h => c h) a)\n    (@dite.{u_1 + 1} α p inst_1 (fun h => @HVAdd.hVAdd.{u_2, u_1, u_1} β α α (@instHVAdd.{u_2, u_1} β α inst) (b h) a)\n      fun h => @HVAdd.hVAdd.{u_2, u_1, u_1} β α α (@instHVAdd.{u_2, u_1} β α inst) (c h) a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d5e2697badb733e972fcbcf88ab2e24347bf4bbd97c1cbba097702fc907392de","qualified_name":"div_div","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a b)\n      c)\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      a\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α\n                  (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n        b c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2cd2f402686f39a9b3872f29d71ab3109f336c655556223bfc3262608afa567f","qualified_name":"div_div_cancel","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G\n        (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n      a\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        a b))\n    b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-20ded4afbcb73c7af8cedce5ad2bd9993d86221d5841b507a3fc80e1349d99da","qualified_name":"div_div_cancel_left","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G\n        (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        a b)\n      a)\n    (@Inv.inv.{u_3} G\n      (@InvOneClass.toInv.{u_3} G\n        (@DivInvOneMonoid.toInvOneClass.{u_3} G\n          (@DivisionMonoid.toDivInvOneMonoid.{u_3} G\n            (@DivisionCommMonoid.toDivisionMonoid.{u_3} G (@CommGroup.toDivisionCommMonoid.{u_3} G inst)))))\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2ed0ade69d76d7636d87cd583fd0afa61339d7c26e09c0f47726692be4643dc9","qualified_name":"div_div_div_cancel_left","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G\n        (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        c a)\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        c b))\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G\n        (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n      b a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-9beb6262ce5beafc2d5e17703af91ae9824629019d4d0641bca48a7dcf17c5d1","qualified_name":"div_div_div_cancel_right","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a c)\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) b c))\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-add0cd754b5c638b16bd73c747286651bee237cd071b41721e1e858ad5b0a948","qualified_name":"div_div_div_comm","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b c d : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a b)\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        c d))\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a c)\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        b d))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-68df330e0c124c21b38390fcc3b4913ffa092a1103405d00ea50e4b46f520533","qualified_name":"div_div_div_eq","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b c d : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a b)\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        c d))\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α\n                  (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n        a d)\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α\n                  (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n        b c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-12a38a8e608a3c55df784a90a41a2fc89e07de24adcd7eef8c5ad0a545082bc9","qualified_name":"div_div_eq_mul_div","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))) a\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))) b c))\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))\n        a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-08e95bedff5844407107d42196b2375cd1d9b50b004b6535448d3526bb5e424c","qualified_name":"div_div_self'","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G\n        (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n      a\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        a b))\n    b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-1f22bd95a450a937c8078b91f2adf303c497cc9eb0a88ee10482cd3a035bace3","qualified_name":"div_eq_div_iff_comm","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a b c : α) {d : α},\n  Iff\n    (@Eq.{u_1 + 1} α\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))) a b)\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))) c d))\n    (@Eq.{u_1 + 1} α\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))) b a)\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))) d c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-1dbc82526acd57e4a991bcf815c85b5aa9ee971e34602ed2420d8db66f236e41","qualified_name":"div_eq_div_iff_div_eq_div","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] {a b c d : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        a b)\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        c d))\n    (@Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        a c)\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        b d))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-152a249e2b37e675ab1ee18ac31f037644a14f8241deb941d784583a5e9c8782","qualified_name":"div_eq_div_iff_mul_eq_mul","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] {a b c d : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        a b)\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        c d))\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        a d)\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        c b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-7b8cdf477747ed5ed79bf7917f5df1d6687f7ca54de4c2f1ec8814f7b696df1d","qualified_name":"div_eq_div_mul_div","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G\n        (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n      a b)\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G\n              (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        c b)\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        a c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-1e11fca543e1f0ceb53dbcac014b1e22d4bb305b919e375bb2b1fab9584d3283","qualified_name":"div_eq_iff_comm","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        a b)\n      c)\n    (@Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-eea527d123fd961af8a1de5e71e191be43714a584f0fd68709bf7cfcdf76cf8c","qualified_name":"div_eq_iff_eq_mul","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a b)\n      c)\n    (@Eq.{u_3 + 1} G a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        c b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-38e81e9c5ce11b4abcc7cc8f61d8f46bcca8df4591899a89c3237df4962f9e76","qualified_name":"div_eq_iff_eq_mul'","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        a b)\n      c)\n    (@Eq.{u_3 + 1} G a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        b c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5db3454a48f7e55a2c6645112d51886fe51c3010b44874c0d54ca1fa7172c08e","qualified_name":"div_eq_inv_mul","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      a b)\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α\n            (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        b)\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-9897856d1d3f6a21d0f21b85d16d540703d2e0f4630770104879e8308f95690c","qualified_name":"div_eq_inv_self","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a b)\n      (@Inv.inv.{u_3} G\n        (@InvOneClass.toInv.{u_3} G\n          (@DivInvOneMonoid.toInvOneClass.{u_3} G\n            (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n        b))\n    (@Eq.{u_3 + 1} G a\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b72702d6b3ccf2fca30c5c5ab48c93ab5ad0b08564766821d6318e04208f3c19","qualified_name":"div_eq_mul_one_div","statement":"∀ {G : Type u_3} [inst : DivInvMonoid.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G (@HDiv.hDiv.{u_3, u_3, u_3} G G G (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G inst)) a b)\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G inst)))))\n      a\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G inst))\n        (@OfNat.ofNat.{u_3} G (nat_lit 1)\n          (@One.toOfNat1.{u_3} G\n            (@MulOne.toOne.{u_3} G\n              (@MulOneClass.toMulOne.{u_3} G (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G inst))))))\n        b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b81120f57b48801a05dd79b59382c717363fc5d8496ce8a56a1b803a3547c908","qualified_name":"div_eq_of_eq_mul'","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        b c) →\n    @Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        a b)\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-fa1a23133d1ab146542ca994433c67001b32f78bda2ab505f3f754973edd263b","qualified_name":"div_eq_of_eq_mul''","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        c b) →\n    @Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a b)\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-77f9d45b22ad069fe9e2f79500cc39834224a0ddc5085fa634f9c1793e4673f8","qualified_name":"div_eq_one","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c7cc29c9293c487131abefe0c0598779b76a757d6f12932fcf7f1465ccf9acba","qualified_name":"div_eq_one_of_eq","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b : G},\n  @Eq.{u_3 + 1} G a b →\n    @Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-4971756ef993a93842dbe9812b052fbaee89444825deefe8b6ac143f4993f294","qualified_name":"div_eq_self","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a b)\n      a)\n    (@Eq.{u_3 + 1} G b\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-6edf36631c61df195b37955f89e83d5bd290cc481cd204a95f6e8fb9d2d9267d","qualified_name":"div_inv_eq_mul","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))) a\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))\n        b))\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))\n      a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c05dcd3cffe4bff54fc6bf28277e4010e52abc60d2431daa336d8a3db3988aea","qualified_name":"div_left_inj","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) b a)\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) c a))\n    (@Eq.{u_3 + 1} G b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-198da85a3c698d5f5a64c61d14e6fe4dc89dd70975479132e77255c689762a8f","qualified_name":"div_left_injective","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {b : G},\n  @Function.Injective.{u_3 + 1, u_3 + 1} G G fun a =>\n    @HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-732ad0b37ba01775c7ac42e31841f78c568e30ff30529219a5c890740ae7da97","qualified_name":"div_mul","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a b)\n      c)\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      a\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        b c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-254586f7369f90b7dd9c27fe130e009317a3127b45db334ef211b85fd9d240d4","qualified_name":"div_mul_cancel_left","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G\n        (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n      a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        a b))\n    (@Inv.inv.{u_3} G\n      (@InvOneClass.toInv.{u_3} G\n        (@DivInvOneMonoid.toInvOneClass.{u_3} G\n          (@DivisionMonoid.toDivInvOneMonoid.{u_3} G\n            (@DivisionCommMonoid.toDivisionMonoid.{u_3} G (@CommGroup.toDivisionCommMonoid.{u_3} G inst)))))\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-79f0509368bd45fc119848d9814c99f501bf6af0c076c8db84e0181986d8fe97","qualified_name":"div_mul_cancel_right","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        b a))\n    (@Inv.inv.{u_3} G\n      (@InvOneClass.toInv.{u_3} G\n        (@DivInvOneMonoid.toInvOneClass.{u_3} G\n          (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2b6dfd3221f9eda3d10f6efb1907c576d463fc9131b8bcd2f703d729cd73bc16","qualified_name":"div_mul_comm","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a b)\n      c)\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        c b)\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b60271e90868d38be882b3c82b9b1a4e5527a9b84814b870afdf98143affdea9","qualified_name":"div_mul_div_cancel","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a b)\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) b c))\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-46114f72c8df2b4915fc1e3fa1628035f920f846e9956463ef1edb05964b784d","qualified_name":"div_mul_div_cancel'","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G\n              (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        a b)\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        c a))\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G\n        (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n      c b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-3f904f4fb645891e76e96a326f2ec957bcce2a45d22e86c2e22b1acec0068d18","qualified_name":"div_mul_div_comm","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b c d : α),\n  @Eq.{u_1 + 1} α\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a b)\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        c d))\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α\n                  (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n        a c)\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α\n                  (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n        b d))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-fc68009b8bdfe2de6139144c67dff1441e95e99e426ee01aea821b539d670994","qualified_name":"div_mul_eq_div_div","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      a\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α\n                  (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n        b c))\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a b)\n      c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2126c06199cfeba1fe1f4c528f4051ca26afe9c293a4aef18811ff48a4c779ac","qualified_name":"div_mul_eq_div_div_swap","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))) a\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))\n        b c))\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))) a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f2c96babba27da61e47c50b8e94a8956f852c36ef1d050ff55e397ed0f0f5533","qualified_name":"div_mul_eq_div_mul_one_div","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      a\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α\n                  (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n        b c))\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a b)\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        (@OfNat.ofNat.{u_1} α (nat_lit 1)\n          (@One.toOfNat1.{u_1} α\n            (@InvOneClass.toOne.{u_1} α\n              (@DivInvOneMonoid.toInvOneClass.{u_1} α\n                (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))))\n        c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e17bfcb8b896a7c11d6b6f6991d803708c297a2cad158386c101281f5cd032c8","qualified_name":"div_mul_eq_mul_div","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a b)\n      c)\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α\n                  (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n        a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-43c72eb4062247de76a6a6cbfc64041cce1dfe7966cd65d53a14a4f16e1429e1","qualified_name":"div_mul_mul_cancel","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G\n              (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        a c)\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        b c))\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G\n              (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n      a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-0a2a54ceaf24ce57a129121f115d325dd8bf1470bc3d2e5ed2023bef4d8ae158","qualified_name":"div_ne_one","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b : G},\n  Iff\n    (@Ne.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))\n    (@Ne.{u_3 + 1} G a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-81bf9dc4e37eaa8c480cbd6f5d73744383aa4993c5c45648c95c9fb175eab835","qualified_name":"div_ne_one_of_ne","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] {a b : α},\n  @Ne.{u_1 + 1} α a b →\n    @Ne.{u_1 + 1} α\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))) a b)\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@MulOne.toOne.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-af8b32bf18c25ba37d3582831a66cac40528d231021a2d02fe0a5d7177b311f5","qualified_name":"div_neg","statement":"∀ {R : Type u_1} [inst : DivisionMonoid.{u_1} R]\n  [inst_1 :\n    @HasDistribNeg.{u_1} R\n      (@MulOne.toMul.{u_1} R\n        (@MulOneClass.toMulOne.{u_1} R\n          (@Monoid.toMulOneClass.{u_1} R\n            (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))]\n  {b : R} (a : R),\n  @Eq.{u_1 + 1} R\n    (@HDiv.hDiv.{u_1, u_1, u_1} R R R\n      (@instHDiv.{u_1} R (@DivInvMonoid.toDiv.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst))) a\n      (@Neg.neg.{u_1} R\n        (@InvolutiveNeg.toNeg.{u_1} R\n          (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n            (@MulOne.toMul.{u_1} R\n              (@MulOneClass.toMulOne.{u_1} R\n                (@Monoid.toMulOneClass.{u_1} R\n                  (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n            inst_1))\n        b))\n    (@Neg.neg.{u_1} R\n      (@InvolutiveNeg.toNeg.{u_1} R\n        (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n          (@MulOne.toMul.{u_1} R\n            (@MulOneClass.toMulOne.{u_1} R\n              (@Monoid.toMulOneClass.{u_1} R\n                (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n          inst_1))\n      (@HDiv.hDiv.{u_1, u_1, u_1} R R R\n        (@instHDiv.{u_1} R (@DivInvMonoid.toDiv.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst))) a b))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-9d897279e1f00e97ebd9341e176210551864f53be6d93c4dd9a3cd3ae400e854","qualified_name":"div_neg_eq_neg_div","statement":"∀ {R : Type u_1} [inst : DivisionMonoid.{u_1} R]\n  [inst_1 :\n    @HasDistribNeg.{u_1} R\n      (@MulOne.toMul.{u_1} R\n        (@MulOneClass.toMulOne.{u_1} R\n          (@Monoid.toMulOneClass.{u_1} R\n            (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))]\n  (a b : R),\n  @Eq.{u_1 + 1} R\n    (@HDiv.hDiv.{u_1, u_1, u_1} R R R\n      (@instHDiv.{u_1} R (@DivInvMonoid.toDiv.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst))) b\n      (@Neg.neg.{u_1} R\n        (@InvolutiveNeg.toNeg.{u_1} R\n          (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n            (@MulOne.toMul.{u_1} R\n              (@MulOneClass.toMulOne.{u_1} R\n                (@Monoid.toMulOneClass.{u_1} R\n                  (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n            inst_1))\n        a))\n    (@Neg.neg.{u_1} R\n      (@InvolutiveNeg.toNeg.{u_1} R\n        (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n          (@MulOne.toMul.{u_1} R\n            (@MulOneClass.toMulOne.{u_1} R\n              (@Monoid.toMulOneClass.{u_1} R\n                (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n          inst_1))\n      (@HDiv.hDiv.{u_1, u_1, u_1} R R R\n        (@instHDiv.{u_1} R (@DivInvMonoid.toDiv.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst))) b a))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-4281ef2682ab1501eba34768b98eb5fb86b2f1b749bbb88318eccd861afcd37f","qualified_name":"div_neg_eq_neg_div'","statement":"∀ {R : Type u_1} [inst : DivisionMonoid.{u_1} R]\n  [inst_1 :\n    @HasDistribNeg.{u_1} R\n      (@MulOne.toMul.{u_1} R\n        (@MulOneClass.toMulOne.{u_1} R\n          (@Monoid.toMulOneClass.{u_1} R\n            (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))]\n  {b : R} (a : R),\n  @Eq.{u_1 + 1} R\n    (@HDiv.hDiv.{u_1, u_1, u_1} R R R\n      (@instHDiv.{u_1} R (@DivInvMonoid.toDiv.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst))) a\n      (@Neg.neg.{u_1} R\n        (@InvolutiveNeg.toNeg.{u_1} R\n          (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n            (@MulOne.toMul.{u_1} R\n              (@MulOneClass.toMulOne.{u_1} R\n                (@Monoid.toMulOneClass.{u_1} R\n                  (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n            inst_1))\n        b))\n    (@HDiv.hDiv.{u_1, u_1, u_1} R R R\n      (@instHDiv.{u_1} R (@DivInvMonoid.toDiv.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))\n      (@Neg.neg.{u_1} R\n        (@InvolutiveNeg.toNeg.{u_1} R\n          (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n            (@MulOne.toMul.{u_1} R\n              (@MulOneClass.toMulOne.{u_1} R\n                (@Monoid.toMulOneClass.{u_1} R\n                  (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n            inst_1))\n        a)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a36f7028120a334deec3333b8fffe9cac3cfe17e47266805dbbad41e9ea2ad4d","qualified_name":"div_one","statement":"∀ {G : Type u_3} [inst : DivInvOneMonoid.{u_3} G] (a : G),\n  @Eq.{u_3 + 1} G\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@DivInvOneMonoid.toDivInvMonoid.{u_3} G inst))) a\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G (@InvOneClass.toOne.{u_3} G (@DivInvOneMonoid.toInvOneClass.{u_3} G inst)))))\n    a"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b25ab6b3ef5f376c21e2883b262a38f83a2e1014dced2ba3fdf4087c30b55c12","qualified_name":"div_pow","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b : α) (n : Nat),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, 0, u_1} α Nat α\n      (@instHPow.{u_1, 0} α Nat\n        (@NPow.toPow.{u_1} α\n          (@Monoid.toNPow.{u_1} α\n            (@DivInvMonoid.toMonoid.{u_1} α\n              (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a b)\n      n)\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HPow.hPow.{u_1, 0, u_1} α Nat α\n        (@instHPow.{u_1, 0} α Nat\n          (@NPow.toPow.{u_1} α\n            (@Monoid.toNPow.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))))\n        a n)\n      (@HPow.hPow.{u_1, 0, u_1} α Nat α\n        (@instHPow.{u_1, 0} α Nat\n          (@NPow.toPow.{u_1} α\n            (@Monoid.toNPow.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))))\n        b n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-fbd8147347641ebb57ef3c8bc10c6d7e76f8edd1486bcffddf6d31a3619f7998","qualified_name":"div_right_comm","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a b)\n      c)\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-eabd9ca1a383de959cb0352e8a56b03bedea4fce55135872f1ac3d32b7b24eba","qualified_name":"div_right_inj","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a b)\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a c))\n    (@Eq.{u_3 + 1} G b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-580230edbf3c17ddf0805513639f563e24fa5ad528d4552c1d3bdf0408f43400","qualified_name":"div_right_injective","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {b : G},\n  @Function.Injective.{u_3 + 1, u_3 + 1} G G fun a =>\n    @HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) b a"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-191a76b2134941120f5c4f0375ee32512b74237ca7061c4ce69d5027d3bf9376","qualified_name":"div_zpow","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b : α) (n : Int),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, 0, u_1} α Int α\n      (@instHPow.{u_1, 0} α Int\n        (@ZPow.toPow.{u_1} α\n          (@DivInvMonoid.toZPow.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a b)\n      n)\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HPow.hPow.{u_1, 0, u_1} α Int α\n        (@instHPow.{u_1, 0} α Int\n          (@ZPow.toPow.{u_1} α\n            (@DivInvMonoid.toZPow.{u_1} α\n              (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))\n        a n)\n      (@HPow.hPow.{u_1, 0, u_1} α Int α\n        (@instHPow.{u_1, 0} α Int\n          (@ZPow.toPow.{u_1} α\n            (@DivInvMonoid.toZPow.{u_1} α\n              (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))\n        b n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-6e6e5aecc7e4cdf695f29e035bfe94d3e827c9f55743735031342c37e9cadbe0","qualified_name":"eq_add_neg_iff_add_eq","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        b\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          c)))\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-6c10a662df8f8ba2e7b8e37c22066ef9457f9c351f59badcd9c1b8beffa53674","qualified_name":"eq_add_neg_of_add_eq","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a c)\n      b →\n    @Eq.{u_3 + 1} G a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        b\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ee1d1f961806516046cdd620dc78f1b2a2a8234e3732445ade109f0ffcf43726","qualified_name":"eq_add_of_add_neg_eq","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          c))\n      b →\n    @Eq.{u_3 + 1} G a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-86653cd9cd02a7a4704fdd2ec36afbd4e27499382410229a1f82089ccee48a63","qualified_name":"eq_add_of_neg_add_eq","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          b)\n        a)\n      c →\n    @Eq.{u_3 + 1} G a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-9de99e458912b25a80962ed71f021fde2cd3fee02e58b6cb54fd541bef2f5878","qualified_name":"eq_add_of_sub_eq","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a c)\n      b →\n    @Eq.{u_3 + 1} G a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-77f0f00c175775d5eb8ec68b93d16795b352b5a5c7f38b1adc349318d440a9d3","qualified_name":"eq_add_of_sub_eq'","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        a b)\n      c →\n    @Eq.{u_3 + 1} G a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-7aad7391bccfdeeb3863d402d5a0f36bdbde1e44c1cb041310e94b0020745088","qualified_name":"eq_div_iff_mul_eq'","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G a\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) b c))\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-030d3ddf64bcd2ffe2b2aba0741be177e72cd135a9779cafda20c6a1fc1e8a96","qualified_name":"eq_div_iff_mul_eq''","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G a\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        b c))\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        c a)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-1638f5038d50295c18ff26c9625467001a5ae4e2749a6f9b758e052b08a4a2d5","qualified_name":"eq_div_of_mul_eq'","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a c)\n      b →\n    @Eq.{u_3 + 1} G a\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-4684d4882eb9861927b8ed542f4abc05dfa24ef9bb3d57d1566ad93bd6c3be92","qualified_name":"eq_div_of_mul_eq''","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        c a)\n      b →\n    @Eq.{u_3 + 1} G a\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e181a0f61fbbf8f307ebe0c719837f588967f6cfb99bb46c1561b94a7ec87dbe","qualified_name":"eq_iff_eq_of_add_eq_add","statement":"∀ {α : Type u_1} [inst : AddCancelCommMonoid.{u_1} α] {a b c d : α},\n  @Eq.{u_1 + 1} α\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@AddCommMonoid.toAddMonoid.{u_1} α (@AddCancelCommMonoid.toAddCommMonoid.{u_1} α inst))))))\n        a b)\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@AddCommMonoid.toAddMonoid.{u_1} α (@AddCancelCommMonoid.toAddCommMonoid.{u_1} α inst))))))\n        c d) →\n    Iff (@Eq.{u_1 + 1} α a c) (@Eq.{u_1 + 1} α b d)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-6708c1c2d1f97bf11fa4432462e06dbfb599f9d7b811c71d017e7ad2c2c618c3","qualified_name":"eq_iff_eq_of_div_eq_div","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c d : G},\n  @Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a b)\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) c d) →\n    Iff (@Eq.{u_3 + 1} G a b) (@Eq.{u_3 + 1} G c d)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-a4c8986ecd6f42959060097b11cd2177ae05af12a897731f6a8d399c4c066198","qualified_name":"eq_iff_eq_of_lt_iff_lt_of_gt_iff_gt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {x y x' y' : α},\n  Iff\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) x y)\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) x' y') →\n    Iff\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) y x)\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) y'\n          x') →\n      Iff (@Eq.{u_2 + 1} α x y) (@Eq.{u_2 + 1} α x' y')"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-820b95342205c5406c2f23a7b805362c5c05ab5151c3f134ec062181dfb2eb5d","qualified_name":"eq_iff_eq_of_mul_eq_mul","statement":"∀ {α : Type u_1} [inst : CancelCommMonoid.{u_1} α] {a b c d : α},\n  @Eq.{u_1 + 1} α\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@CommMonoid.toMonoid.{u_1} α (@CancelCommMonoid.toCommMonoid.{u_1} α inst))))))\n        a b)\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@CommMonoid.toMonoid.{u_1} α (@CancelCommMonoid.toCommMonoid.{u_1} α inst))))))\n        c d) →\n    Iff (@Eq.{u_1 + 1} α a c) (@Eq.{u_1 + 1} α b d)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-512103554fadff963864add63686c2ff7fbaa573eefab2f3be5743dfbd392a56","qualified_name":"eq_iff_eq_of_sub_eq_sub","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c d : G},\n  @Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a b)\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) c d) →\n    Iff (@Eq.{u_3 + 1} G a b) (@Eq.{u_3 + 1} G c d)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-6e12b86ca80cb926d503f7b0a8d8807bb292d5bfdaded8f4bf574410e9ced562","qualified_name":"eq_iff_ge_not_gt","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  Iff (@Eq.{u_2 + 1} α a b)\n    (And (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)\n      (Not (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-7f683cf8b14bfe7bc697cd95e944ae5dc4b01a4273d9ea5e4942b65d059ac490","qualified_name":"eq_iff_le_not_lt","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  Iff (@Eq.{u_2 + 1} α a b)\n    (And (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)\n      (Not (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c31f799d0c6341ebdea2961d35d2433f7b16005fa73609ae17ddd0f162b72e02","qualified_name":"eq_inv_iff_mul_eq_one","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G a\n      (@Inv.inv.{u_3} G\n        (@InvOneClass.toInv.{u_3} G\n          (@DivInvOneMonoid.toInvOneClass.{u_3} G\n            (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n        b))\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-59daeb64a29b8f7d89b9fd3da25ab63ec847d3fd127bb1f2b6abb83947910bb0","qualified_name":"eq_inv_mul_iff_mul_eq","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          b)\n        c))\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        b a)\n      c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f311d721f5bdabc0ec957e1020ea7107a6ffa8141d28d37477928f136d83807b","qualified_name":"eq_inv_mul_of_mul_eq","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        b a)\n      c →\n    @Eq.{u_3 + 1} G a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          b)\n        c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b4d755fb8ff738f227ec10500b2b867d7b45cb13b7c07b10556c17ef57ebd787","qualified_name":"eq_inv_of_mul_eq_one_right","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))\n        a b)\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@MulOne.toOne.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))) →\n    @Eq.{u_1 + 1} α b (@Inv.inv.{u_1} α (@DivInvMonoid.toInv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)) a)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-3544dce8471af285cc983f610d80ccce8779d0ecc0da1b6b95bfc62c5b4a4fc4","qualified_name":"eq_mp_bijective","statement":"∀ {α β : Sort u_3} (h : @Eq.{u_3 + 1} (Sort u_3) α β), @Function.Bijective.{u_3, u_3} α β (@Eq.mp.{u_3} α β h)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-2c5b25a2e4a365c7d1333b5464266611f404675858ec14783578cb15fa7aa03a","qualified_name":"eq_mpr_bijective","statement":"∀ {α β : Sort u_3} (h : @Eq.{u_3 + 1} (Sort u_3) α β), @Function.Bijective.{u_3, u_3} β α (@Eq.mpr.{u_3} α β h)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-94fd3c26fd115df1bda386c2da942b9f3162cbdcbb0ca7b71d54732ce421b170","qualified_name":"eq_mul_inv_iff_mul_eq","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        b\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          c)))\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5e525f17513303de27ef1bcd3c814b3fbfef11671d40ebfdd707729550e3a0c7","qualified_name":"eq_mul_inv_of_mul_eq","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a c)\n      b →\n    @Eq.{u_3 + 1} G a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        b\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e57cf39c12a2c5301e9f2993d8a021cf292f6cc8f263388038bad7dbca04837a","qualified_name":"eq_mul_of_div_eq","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a c)\n      b →\n    @Eq.{u_3 + 1} G a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-0cf218cbd14939cff268e50a251942c24397f06168d52f86b5c8abc64a832fa9","qualified_name":"eq_mul_of_div_eq'","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        a b)\n      c →\n    @Eq.{u_3 + 1} G a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f60483e3a3cd632bb291ca3519402c2eff6bede84b4293e6bcf31a9e3739df9a","qualified_name":"eq_mul_of_inv_mul_eq","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          b)\n        a)\n      c →\n    @Eq.{u_3 + 1} G a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-88a1520053566d143f0891ec2f2a361c7a20431bc537cf3d4216ff69c9c7621a","qualified_name":"eq_mul_of_mul_inv_eq","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          c))\n      b →\n    @Eq.{u_3 + 1} G a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-deecc98a404b7e66112c0f85bade807eacfa666a7d417dabb114aa59556711d8","qualified_name":"eq_neg_add_iff_add_eq","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          b)\n        c))\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        b a)\n      c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a0da0dba6b5642809a7c41d62b9cfb3e05637c4c7371819328829c1203e92ba4","qualified_name":"eq_neg_add_of_add_eq","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        b a)\n      c →\n    @Eq.{u_3 + 1} G a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          b)\n        c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-cf01b1d383752d2cf5e19f2b4f0289810f51b3637f678f44c0706f2e13b3f0e8","qualified_name":"eq_neg_iff_add_eq_zero","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G a\n      (@Neg.neg.{u_3} G\n        (@NegZeroClass.toNeg.{u_3} G\n          (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n        b))\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ac38c638fb29fecd60367aa94973189f318338872f7fdeae4859c268eec4a079","qualified_name":"eq_neg_of_add_eq_zero_right","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))\n        a b)\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@AddZero.toZero.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))) →\n    @Eq.{u_1 + 1} α b\n      (@Neg.neg.{u_1} α (@SubNegMonoid.toNeg.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)) a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c04b8ccf688cffcbc440d7028479ecc4232a828fcdb36986da0f0dca2f6195fa","qualified_name":"eq_of_add_neg_eq_zero","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))\n        a (@Neg.neg.{u_1} α (@SubNegMonoid.toNeg.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)) b))\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@AddZero.toZero.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))) →\n    @Eq.{u_1 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2e9bfc3da3fa1744424cac675d8c4f8ac6845186cb721bf8742870f58482cfd0","qualified_name":"eq_of_div_eq_one","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))) a b)\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@MulOne.toOne.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))) →\n    @Eq.{u_1 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-2873e3b69fc5f25fdbc686d50d22997e51731d01b94b49190a54b060bea8f126","qualified_name":"eq_of_forall_ge_iff","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  (∀ (c : α),\n      Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a c)\n        (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b c)) →\n    @Eq.{u_2 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-4d5641e377e778e7963f46cf6cba1206953a50e00b45613a6f6fa1cbe8633564","qualified_name":"eq_of_forall_gt_iff","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  (∀ (c : α),\n      Iff\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a c)\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b c)) →\n    @Eq.{u_2 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-fb77d1bb7524c78773ce82c2f2064e187a9c5a62bc55d3ab5bc984e4da41a2d6","qualified_name":"eq_of_forall_le_iff","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  (∀ (c : α),\n      Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) c a)\n        (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) c b)) →\n    @Eq.{u_2 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-80a0c565febad4db1e200087434ba3ef700f6c85ed85e0b4191f76ac8534ea47","qualified_name":"eq_of_forall_lt_iff","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  (∀ (c : α),\n      Iff\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c a)\n        (@LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c b)) →\n    @Eq.{u_2 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-cc1cc222d0811fd47b8ee92e2baff2c809f5687d60382f3c478895db6093c25d","qualified_name":"eq_of_inv_mul_eq_one","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))\n        (@Inv.inv.{u_1} α (@DivInvMonoid.toInv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)) a) b)\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@MulOne.toOne.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))) →\n    @Eq.{u_1 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-4eb56a841be88ce2b378d46abf43d4111b45ffb82eaf8c6ab97db6670788ca4f","qualified_name":"eq_of_le_of_forall_gt_imp_ge_of_dense","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α]\n  [@DenselyOrdered.{u_2} α\n      (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))]\n  {a₁ a₂ : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))\n      a₁ a₂ →\n    (∀ (a : α),\n        @LT.lt.{u_2} α\n            (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a\n            a₂ →\n          @LE.le.{u_2} α\n            (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a\n            a₁) →\n      @Eq.{u_2 + 1} α a₁ a₂"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-7c0b53b0c05df5240f35528359380d37d0b53f9119fd98289ce4e5c11cbfefe5","qualified_name":"eq_of_le_of_forall_lt_imp_le_of_dense","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α]\n  [@DenselyOrdered.{u_2} α\n      (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))]\n  {a₁ a₂ : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))\n      a₂ a₁ →\n    (∀ (a : α),\n        @LT.lt.{u_2} α\n            (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₂\n            a →\n          @LE.le.{u_2} α\n            (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₁\n            a) →\n      @Eq.{u_2 + 1} α a₁ a₂"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-427726e972890dde84312f6142b02143049748fecad201a442582f4025c3b523","qualified_name":"eq_of_le_of_not_lt","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b →\n    Not (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b) → @Eq.{u_2 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-d2d6e5de8794d3e321e677b0c5409500d4c668240ca18fb000a84fe7913f9166","qualified_name":"eq_of_le_of_not_lt'","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a →\n    Not (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a) → @Eq.{u_2 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5863c9c33c56816908bbf9d5237462c1c88554c40ebda6d2525a8d7c420dcaa8","qualified_name":"eq_of_mul_inv_eq_one","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))\n        a (@Inv.inv.{u_1} α (@DivInvMonoid.toInv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)) b))\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@MulOne.toOne.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))) →\n    @Eq.{u_1 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ebd3caea6b039da8718483d36dda94f85bb36d799c3b45d9db2cb220ee36ad0a","qualified_name":"eq_of_neg_add_eq_zero","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))\n        (@Neg.neg.{u_1} α (@SubNegMonoid.toNeg.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)) a) b)\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@AddZero.toZero.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))) →\n    @Eq.{u_1 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b7cc3b797c93da00f591cf9197ab511c9a14a2561d7ab904c8a753928a3d73b0","qualified_name":"eq_of_one_div_eq_one_div","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 1)\n          (@One.toOfNat1.{u_1} α\n            (@InvOneClass.toOne.{u_1} α\n              (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))))\n        a)\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 1)\n          (@One.toOfNat1.{u_1} α\n            (@InvOneClass.toOne.{u_1} α\n              (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))))\n        b) →\n    @Eq.{u_1 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2df51337b7f936fe5148a5a7c4a4e631e823540bff832ba37663d8f1bb805415","qualified_name":"eq_of_sub_eq_zero","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))) a b)\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@AddZero.toZero.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))) →\n    @Eq.{u_1 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d516c6447e9d5de0fa1876e9530ecf6447530f2fcd260f1d56dac3fe9aae8a65","qualified_name":"eq_of_zero_sub_eq_zero_sub","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 0)\n          (@Zero.toOfNat0.{u_1} α\n            (@NegZeroClass.toZero.{u_1} α\n              (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))))\n        a)\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 0)\n          (@Zero.toOfNat0.{u_1} α\n            (@NegZeroClass.toZero.{u_1} α\n              (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))))\n        b) →\n    @Eq.{u_1 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-eeaad292c7a38bdf7151254f48811a4ad52006aa3532f881f1a6cce4ad8fd0d2","qualified_name":"eq_one_div_of_mul_eq_one_left","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))\n        b a)\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@MulOne.toOne.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))) →\n    @Eq.{u_1 + 1} α b\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 1)\n          (@One.toOfNat1.{u_1} α\n            (@MulOne.toOne.{u_1} α\n              (@MulOneClass.toMulOne.{u_1} α\n                (@Monoid.toMulOneClass.{u_1} α\n                  (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))))))\n        a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c8c98fc1d64e4ee7e2957494318bb0f2699546796dab2da7925ca7deeb7656cc","qualified_name":"eq_one_div_of_mul_eq_one_right","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))\n        a b)\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@MulOne.toOne.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))) →\n    @Eq.{u_1 + 1} α b\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 1)\n          (@One.toOfNat1.{u_1} α\n            (@MulOne.toOne.{u_1} α\n              (@MulOneClass.toMulOne.{u_1} α\n                (@Monoid.toMulOneClass.{u_1} α\n                  (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))))))\n        a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-bf5e74ee172b9c4f91b05012bbdcff23fa8263fc708b38adf51414c7d1a9dd8f","qualified_name":"eq_one_iff_eq_one_of_mul_eq_one","statement":"∀ {M : Type u_4} [inst : MulOneClass.{u_4} M] {a b : M},\n  @Eq.{u_4 + 1} M\n      (@HMul.hMul.{u_4, u_4, u_4} M M M (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst)))\n        a b)\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst)))) →\n    Iff\n      (@Eq.{u_4 + 1} M a\n        (@OfNat.ofNat.{u_4} M (nat_lit 1)\n          (@One.toOfNat1.{u_4} M (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst)))))\n      (@Eq.{u_4 + 1} M b\n        (@OfNat.ofNat.{u_4} M (nat_lit 1)\n          (@One.toOfNat1.{u_4} M (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst)))))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-6bc1b3d5a56827d22492dc521bc6a3a61bbbb16c704fcec9ac3eb0aab2e6cf90","qualified_name":"eq_or_eq_or_eq_of_forall_not_lt_lt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α],\n  (∀ ⦃x y z : α⦄,\n      @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) x y →\n        @LT.lt.{u_2} α\n            (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) y z →\n          False) →\n    ∀ (x y z : α), Or (@Eq.{u_2 + 1} α x y) (Or (@Eq.{u_2 + 1} α y z) (@Eq.{u_2 + 1} α x z))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-fbac49f031215715c917bd79fe338579374c7d7b22f3e8d75f5001ecfea5889f","qualified_name":"eq_or_lt_of_le","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b →\n    Or (@Eq.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-e62f5e5a73db80a153a3d5aa2e0b17d8a5361b6240023b997a306e41aaae00b5","qualified_name":"eq_or_lt_of_le'","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a →\n    Or (@Eq.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-5f65f1cc7fc390f83f2c9e3e26193d7be90506d5b85fb5c02042b34751246feb","qualified_name":"eq_rec_inj","statement":"∀ {α : Sort u_1} {a a' : α} (h : @Eq.{u_1} α a a') {C : α → Type u_3} (x y : C a),\n  Iff (@Eq.{u_3 + 1} (C a') (@Eq.ndrec.{u_3 + 1, u_1} α a C x a' h) (@Eq.ndrec.{u_3 + 1, u_1} α a C y a' h))\n    (@Eq.{u_3 + 1} (C a) x y)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-0123b79049551dfeefdde3d0390de5100c6faba0d1b6f2010d8d31682992bcb2","qualified_name":"eq_rec_on_bijective","statement":"∀ {α : Sort u_1} {C : α → Sort u_3} {a a' : α} (h : @Eq.{u_1} α a a'),\n  @Function.Bijective.{u_3, u_3} (C a) (C a') fun x => @Eq.ndrec.{u_3, u_1} α a C x a' h"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-aa6cc5f9f2d48d0e3150f249513b3ae60566ce1b0a1ce3739eed73cb9c8dc789","qualified_name":"eq_sub_iff_add_eq","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G a\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) b c))\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-267b9518c0e207bd007582cc232afc86ebab090b2b5fc88940eeb2c1d75539e6","qualified_name":"eq_sub_iff_add_eq'","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G a\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        b c))\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        c a)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d11a136ea6994f37a59c7f01348b454ea8ea5f835efaf3f3b44a6ddb3b41855f","qualified_name":"eq_sub_of_add_eq","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a c)\n      b →\n    @Eq.{u_3 + 1} G a\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ac770b73eae04d0710dc23e655870e4f1913d8df4c713942339b1f876e24a26f","qualified_name":"eq_sub_of_add_eq'","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        c a)\n      b →\n    @Eq.{u_3 + 1} G a\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-1a0e8896d5be9ef5f0f2feb381914e7908dd549fa5cf5f0476e8f0983898fc74","qualified_name":"eq_zero_iff_eq_zero_of_add_eq_zero","statement":"∀ {M : Type u_4} [inst : AddZeroClass.{u_4} M] {a b : M},\n  @Eq.{u_4 + 1} M\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst))) a b)\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst)))) →\n    Iff\n      (@Eq.{u_4 + 1} M a\n        (@OfNat.ofNat.{u_4} M (nat_lit 0)\n          (@Zero.toOfNat0.{u_4} M (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst)))))\n      (@Eq.{u_4 + 1} M b\n        (@OfNat.ofNat.{u_4} M (nat_lit 0)\n          (@Zero.toOfNat0.{u_4} M (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst)))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-6d9ca70b4c1d03b1b08b192f74481326f6f61ead059679bee41e8d7dc98dd62b","qualified_name":"eq_zero_sub_of_add_eq_zero_left","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))\n        b a)\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@AddZero.toZero.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))) →\n    @Eq.{u_1 + 1} α b\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 0)\n          (@Zero.toOfNat0.{u_1} α\n            (@AddZero.toZero.{u_1} α\n              (@AddZeroClass.toAddZero.{u_1} α\n                (@AddMonoid.toAddZeroClass.{u_1} α\n                  (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))))\n        a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-183a323b1a2d5472de9135d6b983d271edad1a53770dc387204f8d03a4b86e70","qualified_name":"eq_zero_sub_of_add_eq_zero_right","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] {a b : α},\n  @Eq.{u_1 + 1} α\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))\n        a b)\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@AddZero.toZero.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))) →\n    @Eq.{u_1 + 1} α b\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 0)\n          (@Zero.toOfNat0.{u_1} α\n            (@AddZero.toZero.{u_1} α\n              (@AddZeroClass.toAddZero.{u_1} α\n                (@AddMonoid.toAddZeroClass.{u_1} α\n                  (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))))\n        a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-7b914d5d80daf122c970eba310ae18faf23686ddb8761ea5e565779256af6c53","qualified_name":"exists_between","statement":"∀ {α : Type u_2} [inst : LT.{u_2} α] [@DenselyOrdered.{u_2} α inst] {a₁ a₂ : α},\n  @LT.lt.{u_2} α inst a₁ a₂ → ∃ a, And (@LT.lt.{u_2} α inst a₁ a) (@LT.lt.{u_2} α inst a a₂)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-e6a19c0e534023e450340b202a4b8a70fac5e3bb4bdf6b5dd7ac4ab2632fcf2c","qualified_name":"exists_between'","statement":"∀ {α : Type u_2} [inst : LT.{u_2} α] [@DenselyOrdered.{u_2} α inst] {a₁ a₂ : α},\n  @LT.lt.{u_2} α inst a₂ a₁ → ∃ a, And (@LT.lt.{u_2} α inst a a₁) (@LT.lt.{u_2} α inst a₂ a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-5c082a3485b45a574ad18251efa6070bae5c1dbab8e50e645d8db4efb06c2e35","qualified_name":"exists_forall_ge_and","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {p q : α → Prop},\n  (∃ i,\n      ∀ (j : α),\n        @GE.ge.{u_2} α\n            (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) j i →\n          p j) →\n    (∃ i,\n        ∀ (j : α),\n          @GE.ge.{u_2} α\n              (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) j\n              i →\n            q j) →\n      ∃ i,\n        ∀ (j : α),\n          @GE.ge.{u_2} α\n              (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) j\n              i →\n            And (p j) (q j)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-044de1d3ca5b3381ff1fd4af7417c07c36f3d964b50f7eb03d6853395fd866cc","qualified_name":"exists_forall_le_and","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {p q : α → Prop},\n  (∃ i,\n      ∀ (j : α),\n        @GE.ge.{u_2} α\n            (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) i j →\n          p j) →\n    (∃ i,\n        ∀ (j : α),\n          @GE.ge.{u_2} α\n              (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) i\n              j →\n            q j) →\n      ∃ i,\n        ∀ (j : α),\n          @GE.ge.{u_2} α\n              (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) i\n              j →\n            And (p j) (q j)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-b2a6700fb538502eaeb1ec65eece7db2bbe486b247a0e649dddb511c5ce1623e","qualified_name":"exists_ge_of_linear","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] (a b : α),\n  ∃ c,\n    And\n      (@LE.le.{u_2} α\n        (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a c)\n      (@LE.le.{u_2} α\n        (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b c)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-8664ae5ebdcbe10217817a70d62202dd571496f9c722b394e57397a8215418db","qualified_name":"exists_le_of_linear","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] (a b : α),\n  ∃ c,\n    And\n      (@LE.le.{u_2} α\n        (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c a)\n      (@LE.le.{u_2} α\n        (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c b)"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-2e76bfaf1abc434c31b54186f602d9772b001baf4e8b83322f65660ce20a2e38","qualified_name":"forall_existsUnique_iff","statement":"∀ {α : Sort u_1} {β : Sort u_2} {r : α → β → Prop},\n  Iff (∀ (a : α), @ExistsUnique.{u_2} β fun b => r a b) (∃ f, ∀ {a : α} {b : β}, Iff (r a b) (@Eq.{u_2} β (f a) b))"},{"kind":"theorem","module":"Mathlib.Logic.Function.Basic","object_id":"object-8757cf3edc3f871905bdf6b6feeb8d6cbc049d1cb525535aac703877c562ddf9","qualified_name":"forall_existsUnique_iff'","statement":"∀ {α : Sort u_1} {β : Sort u_2} {r : α → β → Prop},\n  Iff (∀ (a : α), @ExistsUnique.{u_2} β fun b => r a b)\n    (∃ f, @Eq.{max (max 1 u_1) u_2} (α → β → Prop) r fun x1 x2 => @Eq.{u_2} β (f x1) x2)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-5bb48a4da0e0db070a52703e408270d5c83ef68d735ae087e5d123315a8a9fff","qualified_name":"forall_ge_iff_le","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b : α},\n  Iff (∀ ⦃c : α⦄, @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a c → @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) b c)\n    (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-e84ff4031201180c73ea6afb9d80c4ebfc705162eb32187f73d190295bf13aab","qualified_name":"forall_ge_imp_ne_iff_lt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  Iff\n    (∀ (c : α),\n      @LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a c →\n        @Ne.{u_2 + 1} α c b)\n    (@LT.lt.{u_2} α\n      (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-dbd0b71b181242a8e99403c5adf697e98c88db9103044a79de2e323fde2cf3c7","qualified_name":"forall_gt_iff_le","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  Iff\n    (∀ ⦃c : α⦄,\n      @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a c →\n        @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b c)\n    (@LE.le.{u_2} α\n      (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-8dc5a375f3da9728078913316c739076767e36630f46ace4ca4694681b26ea9c","qualified_name":"forall_gt_imp_ge_iff_le_of_dense","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α]\n  [@DenselyOrdered.{u_2} α\n      (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))]\n  {a₁ a₂ : α},\n  Iff\n    (∀ (a : α),\n      @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₂ a →\n        @LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₁ a)\n    (@LE.le.{u_2} α\n      (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₁ a₂)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-6f8f080cf5cb2a90b623751f4e22bcce44d5eed7efdf0fa295d41fa12283e3f4","qualified_name":"forall_gt_imp_ne_iff_le","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  Iff\n    (∀ (c : α),\n      @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a c →\n        @Ne.{u_2 + 1} α c b)\n    (@LE.le.{u_2} α\n      (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-ae3525464138144a763f44eda1f949da87c8d3f3de25b040c34e71e2110824f5","qualified_name":"forall_le_iff_le","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b : α},\n  Iff (∀ ⦃c : α⦄, @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) c a → @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) c b)\n    (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-a2720e7f12d7c6981c8c5995332186a66bcf4717948e47efdb5983e8b1aa85ad","qualified_name":"forall_le_imp_ne_iff_lt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  Iff\n    (∀ (c : α),\n      @LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c a →\n        @Ne.{u_2 + 1} α c b)\n    (@LT.lt.{u_2} α\n      (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-de6e9ed1d4d937419845f4e627f292a5007a61f4b8833b7a72a4e333f67e9c3f","qualified_name":"forall_lt_iff_le","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  Iff\n    (∀ ⦃c : α⦄,\n      @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c a →\n        @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c b)\n    (@LE.le.{u_2} α\n      (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-2f59c2ebd784904ce3c40a1839188b56bc4adaa08bf3fd664702615214a23ed4","qualified_name":"forall_lt_imp_le_iff_le_of_dense","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α]\n  [@DenselyOrdered.{u_2} α\n      (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))]\n  {a₁ a₂ : α},\n  Iff\n    (∀ (a : α),\n      @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a a₂ →\n        @LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a a₁)\n    (@LE.le.{u_2} α\n      (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₂ a₁)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-70cd5b2205692c4275c881b2efcf80b2c8d3167c14ff18255120b0cc60f7ba7e","qualified_name":"forall_lt_imp_ne_iff_le","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  Iff\n    (∀ (c : α),\n      @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c a →\n        @Ne.{u_2 + 1} α c b)\n    (@LE.le.{u_2} α\n      (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-e18f916f9b8791a6964738049859b01853975db336979a9a8ceb26aa80053274","qualified_name":"ge_imp_ge_of_le_of_le","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b c d : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a c →\n    @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) d b →\n      @GE.ge.{u_2} α (@Preorder.toLE.{u_2} α inst) a b → @GE.ge.{u_2} α (@Preorder.toLE.{u_2} α inst) c d"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-33e153dc1e9d1a25511d3c31a99be91736b5d94fac65e197df2be3988c875f43","qualified_name":"ge_imp_gt_of_lt","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b c : α},\n  @LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) a b →\n    @GE.ge.{u_2} α (@Preorder.toLE.{u_2} α inst) a c → @GT.gt.{u_2} α (@Preorder.toLT.{u_2} α inst) b c"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-97a92b58ada3ff50e881e03584b846910fe3b0159b2a889131a7fa4d9867de56","qualified_name":"ge_imp_gt_of_lt'","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b c : α},\n  @LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) b a →\n    @GE.ge.{u_2} α (@Preorder.toLE.{u_2} α inst) c a → @GT.gt.{u_2} α (@Preorder.toLT.{u_2} α inst) c b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-547d6644424bff084cd5c9a76fe466726e0ca988383359f53173b00d70df5087","qualified_name":"ge_trans'","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b c : α},\n  @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) a b →\n    @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) b c → @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) a c"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-40d1584a3fe5bed8c790e685f718845983a853f08c85a703c61f150b009121a8","qualified_name":"gt_imp_gt_of_le_of_le","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b c d : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a c →\n    @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) d b →\n      @GT.gt.{u_2} α (@Preorder.toLT.{u_2} α inst) a b → @GT.gt.{u_2} α (@Preorder.toLT.{u_2} α inst) c d"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-ba88742320e68233b7d289bb6c5d09eab355a7f6e2fd060e0d44bbdd0e9541f7","qualified_name":"gt_trans'","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b c : α},\n  @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) a b →\n    @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) b c → @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) a c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-aa9db67fe0174a42f611367605aadd18cce40d89da5d1c9fa6a80cbbd5e9bebb","qualified_name":"hom_coe_nsmul","statement":"∀ {M : Type u_4} {F : Type u_5} [inst : AddMonoid.{u_5} F] (c : F → M → M),\n  @Eq.{u_4 + 1} (M → M)\n      (c\n        (@OfNat.ofNat.{u_5} F (nat_lit 0)\n          (@Zero.toOfNat0.{u_5} F\n            (@AddZero.toZero.{u_5} F (@AddZeroClass.toAddZero.{u_5} F (@AddMonoid.toAddZeroClass.{u_5} F inst))))))\n      (@id.{u_4 + 1} M) →\n    (∀ (f g : F),\n        @Eq.{u_4 + 1} (M → M)\n          (c\n            (@HAdd.hAdd.{u_5, u_5, u_5} F F F\n              (@instHAdd.{u_5} F\n                (@AddZero.toAdd.{u_5} F (@AddZeroClass.toAddZero.{u_5} F (@AddMonoid.toAddZeroClass.{u_5} F inst))))\n              f g))\n          (@Function.comp.{u_4 + 1, u_4 + 1, u_4 + 1} M M M (c f) (c g))) →\n      ∀ (f : F) (n : Nat),\n        @Eq.{u_4 + 1} (M → M)\n          (c\n            (@HSMul.hSMul.{0, u_5, u_5} Nat F F\n              (@instHSMul.{0, u_5} Nat F (@NSMul.toSMul.{u_5} F (@AddMonoid.toNSMul.{u_5} F inst))) n f))\n          (@Nat.iterate.{u_4 + 1} M (c f) n)"},{"kind":"definition","module":"Mathlib.Algebra.Group.Basic","object_id":"object-bb0aa1ea6eb39705de1cdcd98964401c80033f14434e453a94bf3d24063da553","qualified_name":"hom_coe_nsmul._f","statement":"∀ {M : Type u_4} {F : Type u_5} [inst : AddMonoid.{u_5} F] (c : F → M → M),\n  @Eq.{u_4 + 1} (M → M)\n      (c\n        (@OfNat.ofNat.{u_5} F (nat_lit 0)\n          (@Zero.toOfNat0.{u_5} F\n            (@AddZero.toZero.{u_5} F (@AddZeroClass.toAddZero.{u_5} F (@AddMonoid.toAddZeroClass.{u_5} F inst))))))\n      (@id.{u_4 + 1} M) →\n    (∀ (f g : F),\n        @Eq.{u_4 + 1} (M → M)\n          (c\n            (@HAdd.hAdd.{u_5, u_5, u_5} F F F\n              (@instHAdd.{u_5} F\n                (@AddZero.toAdd.{u_5} F (@AddZeroClass.toAddZero.{u_5} F (@AddMonoid.toAddZeroClass.{u_5} F inst))))\n              f g))\n          (@Function.comp.{u_4 + 1, u_4 + 1, u_4 + 1} M M M (c f) (c g))) →\n      ∀ (f : F) (x : Nat)\n        (f_1 :\n          @Nat.below.{0}\n            (fun x =>\n              @Eq.{u_4 + 1} (M → M)\n                (c\n                  (@HSMul.hSMul.{0, u_5, u_5} Nat F F\n                    (@instHSMul.{0, u_5} Nat F (@NSMul.toSMul.{u_5} F (@AddMonoid.toNSMul.{u_5} F inst))) x f))\n                (@Nat.iterate.{u_4 + 1} M (c f) x))\n            x),\n        @Eq.{u_4 + 1} (M → M)\n          (c\n            (@HSMul.hSMul.{0, u_5, u_5} Nat F F\n              (@instHSMul.{0, u_5} Nat F (@NSMul.toSMul.{u_5} F (@AddMonoid.toNSMul.{u_5} F inst))) x f))\n          (@Nat.iterate.{u_4 + 1} M (c f) x)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-3900a6c2b406506123e0f37164eb78aa2fc4766042860126ceee69e737abbbef","qualified_name":"hom_coe_pow","statement":"∀ {M : Type u_4} {F : Type u_5} [inst : Monoid.{u_5} F] (c : F → M → M),\n  @Eq.{u_4 + 1} (M → M)\n      (c\n        (@OfNat.ofNat.{u_5} F (nat_lit 1)\n          (@One.toOfNat1.{u_5} F\n            (@MulOne.toOne.{u_5} F (@MulOneClass.toMulOne.{u_5} F (@Monoid.toMulOneClass.{u_5} F inst))))))\n      (@id.{u_4 + 1} M) →\n    (∀ (f g : F),\n        @Eq.{u_4 + 1} (M → M)\n          (c\n            (@HMul.hMul.{u_5, u_5, u_5} F F F\n              (@instHMul.{u_5} F\n                (@MulOne.toMul.{u_5} F (@MulOneClass.toMulOne.{u_5} F (@Monoid.toMulOneClass.{u_5} F inst))))\n              f g))\n          (@Function.comp.{u_4 + 1, u_4 + 1, u_4 + 1} M M M (c f) (c g))) →\n      ∀ (f : F) (n : Nat),\n        @Eq.{u_4 + 1} (M → M)\n          (c\n            (@HPow.hPow.{u_5, 0, u_5} F Nat F\n              (@instHPow.{u_5, 0} F Nat (@NPow.toPow.{u_5} F (@Monoid.toNPow.{u_5} F inst))) f n))\n          (@Nat.iterate.{u_4 + 1} M (c f) n)"},{"kind":"definition","module":"Mathlib.Data.Set.Basic","object_id":"object-a50bbac8fac090c2d7bc7bbd39253fcda6f47dbd9496134699980bd7741e8fef","qualified_name":"instCoeTCElem","statement":"{α : Type u} → (s : Set.{u} α) → CoeTC.{u + 1, u + 1} (@Set.Elem.{u} α s) α"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-ec4583abd0aaf8712c077998384561921b1026f72a34378287ed66be3d5add83","qualified_name":"instDecidableCurryOfMk_mathlib","statement":"{α : Type u_3} →\n  {β : Type u_4} →\n    {r : Prod.{u_3, u_4} α β → Prop} →\n      {a : α} →\n        {b : β} →\n          [Decidable (r (@Prod.mk.{u_3, u_4} α β a b))] → Decidable (@Function.curry.{u_3, u_4, 1} α β Prop r a b)"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-47af7ec3da9598e1f4e1077e44429be343625536cb6ad619da7e2203ca18767e","qualified_name":"instDecidableRelAdjFromRelOfDecidableEq","statement":"{V : Type u} →\n  [DecidableEq.{u + 1} V] →\n    (r : V → V → Prop) →\n      [@DecidableRel.{u + 1, u + 1} V V r] →\n        @DecidableRel.{u + 1, u + 1} V V (@SimpleGraph.Adj.{u} V (@SimpleGraph.fromRel.{u} V r))"},{"kind":"definition","module":"Mathlib.Logic.Function.Basic","object_id":"object-9ffd889883f8099d3195ca00b756e551c9ee5ddf0e307f05801a0ba1de54b24b","qualified_name":"instDecidableUncurryOfFstSnd_mathlib","statement":"{α : Type u_3} →\n  {β : Type u_4} →\n    {r : α → β → Prop} →\n      {x : Prod.{u_3, u_4} α β} →\n        [Decidable (r (@Prod.fst.{u_3, u_4} α β x) (@Prod.snd.{u_3, u_4} α β x))] →\n          Decidable (@Function.uncurry.{u_3, u_4, 1} α β Prop r x)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-3985c3f1eec9ee581abe5f8b4baa42ece3c20f50a43290f27b1e3bda2929c150","qualified_name":"instDenselyOrderedForall","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → Preorder.{u_4} (π i)]\n  [∀ (i : ι), @DenselyOrdered.{u_4} (π i) (@Preorder.toLT.{u_4} (π i) (inst i))],\n  @DenselyOrdered.{max u_1 u_4} ((i : ι) → π i)\n    (@Preorder.toLT.{max u_1 u_4} ((i : ι) → π i) (@Pi.preorder.{u_1, u_4} ι π inst))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-9815d7298d6f086ec7343eb40d02ec01ccdc86cea0ab917ece5152202c6a9326","qualified_name":"instDenselyOrderedProd","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : Preorder.{u_2} α] [inst_1 : Preorder.{u_3} β]\n  [@DenselyOrdered.{u_2} α (@Preorder.toLT.{u_2} α inst)] [@DenselyOrdered.{u_3} β (@Preorder.toLT.{u_3} β inst_1)],\n  @DenselyOrdered.{max u_3 u_2} (Prod.{u_2, u_3} α β)\n    (@Preorder.toLT.{max u_2 u_3} (Prod.{u_2, u_3} α β) (@Prod.instPreorder.{u_2, u_3} α β inst inst_1))"},{"kind":"definition","module":"Mathlib.Combinatorics.SimpleGraph.Basic","object_id":"object-3178cf60b4b32d9fea561f1883780189b0db632b5ba1b6571001966b877906c3","qualified_name":"instFintypeSimpleGraphOfDecidableEq","statement":"{V : Type u} → [Fintype.{u} V] → [DecidableEq.{u + 1} V] → Fintype.{u} (SimpleGraph.{u} V)"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-2cc36caa7a9e2276a72dcec0d8569445e0706e566405cc4552582887c330aac7","qualified_name":"instLinearOrderEmpty","statement":"LinearOrder.{0} Empty"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-cb62aeed384489e24cc32202e04dd6aef0b4bed94feb05d98752c07e1c5af7a3","qualified_name":"instLinearOrderPEmpty","statement":"LinearOrder.{u_5} PEmpty.{u_5 + 1}"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-31826f688c66490ec601dd339dc92f2d284b4d303042e259a0203bcc90b39c2e","qualified_name":"inv_bijective","statement":"∀ {G : Type u_3} [inst : InvolutiveInv.{u_3} G],\n  @Function.Bijective.{u_3 + 1, u_3 + 1} G G (@Inv.inv.{u_3} G (@InvolutiveInv.toInv.{u_3} G inst))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ff8bb80898485e25a0fca4361ce9ee02b20ff8835c2b720ba9a329b1af7f33ad","qualified_name":"inv_comp_inv","statement":"∀ (G : Type u_3) [inst : InvolutiveInv.{u_3} G],\n  @Eq.{u_3 + 1} (G → G)\n    (@Function.comp.{u_3 + 1, u_3 + 1, u_3 + 1} G G G (@Inv.inv.{u_3} G (@InvolutiveInv.toInv.{u_3} G inst))\n      (@Inv.inv.{u_3} G (@InvolutiveInv.toInv.{u_3} G inst)))\n    (@id.{u_3 + 1} G)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-6f78220cea4302cb5df3dd11f84ae17d98003d68a81856c6eb2fcd6c2fd4eeeb","qualified_name":"inv_div","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@Inv.inv.{u_1} α (@DivInvMonoid.toInv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))) a b))\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))) b a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-dcb1f260bd3b86fde6b5810997bc69d81155ab423a7865749366cc4bc8a41936","qualified_name":"inv_div'","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@Inv.inv.{u_1} α\n      (@InvOneClass.toInv.{u_1} α\n        (@DivInvOneMonoid.toInvOneClass.{u_1} α\n          (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a b))\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α\n            (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a)\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α\n            (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-1f3cf6c44a6453206497ff96343a1ca40d042795fc97ddec76e0aecd518d7681","qualified_name":"inv_div_comm","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α\n            (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a)\n      b)\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α\n            (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        b)\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2fba98f47ce391f829db67defce74a92fc1c8cb48e27e094e49dff3dcdbf5df2","qualified_name":"inv_div_inv","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α\n            (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a)\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α\n            (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        b))\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      b a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-507e2b700d2cf8843e1c1f01631473ad31af255289f164c4dd1ce0b08d8d25f2","qualified_name":"inv_div_left","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n      (@Inv.inv.{u_1} α (@DivInvMonoid.toInv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)) a) b)\n    (@Inv.inv.{u_1} α (@DivInvMonoid.toInv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))\n        b a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ac6d42b79b97c338e84e3b188a468d7b115b9c90cd1e78bbc88fc3dded523e40","qualified_name":"inv_eq_iff_eq_inv","statement":"∀ {G : Type u_3} [inst : InvolutiveInv.{u_3} G] {a b : G},\n  Iff (@Eq.{u_3 + 1} G (@Inv.inv.{u_3} G (@InvolutiveInv.toInv.{u_3} G inst) a) b)\n    (@Eq.{u_3 + 1} G a (@Inv.inv.{u_3} G (@InvolutiveInv.toInv.{u_3} G inst) b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-afbbaa5ef303400e6e2a34e864e4d137dfffa0e78cf1fef0f7419fd561fc7863","qualified_name":"inv_eq_iff_mul_eq_one","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@Inv.inv.{u_3} G\n        (@InvOneClass.toInv.{u_3} G\n          (@DivInvOneMonoid.toInvOneClass.{u_3} G\n            (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n        a)\n      b)\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-67c2fbe28a7c79d22aac9afefe99b57f695b68a9b206fba80ff043da056285e3","qualified_name":"inv_eq_one","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] {a : α},\n  Iff\n    (@Eq.{u_1 + 1} α\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))\n        a)\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@InvOneClass.toOne.{u_1} α\n            (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst))))))\n    (@Eq.{u_1 + 1} α a\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@InvOneClass.toOne.{u_1} α\n            (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-30205d0a2822d71d9ce436f77f361b273e95fdee977330e8f0c97b70a81c7cdf","qualified_name":"inv_inj","statement":"∀ {G : Type u_3} [inst : InvolutiveInv.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G (@Inv.inv.{u_3} G (@InvolutiveInv.toInv.{u_3} G inst) a)\n      (@Inv.inv.{u_3} G (@InvolutiveInv.toInv.{u_3} G inst) b))\n    (@Eq.{u_3 + 1} G a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d3d0c132ae88a3200bb9e4c0275b367790a0942bf696479626c02914ff6673cc","qualified_name":"inv_injective","statement":"∀ {G : Type u_3} [inst : InvolutiveInv.{u_3} G],\n  @Function.Injective.{u_3 + 1, u_3 + 1} G G (@Inv.inv.{u_3} G (@InvolutiveInv.toInv.{u_3} G inst))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-dd7c16bb1ed83f880e0e7b4b8f50f766c48c358ac920d718a2db4ad1d89b17a9","qualified_name":"inv_inv_div_inv","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@Inv.inv.{u_1} α\n      (@InvOneClass.toInv.{u_1} α\n        (@DivInvOneMonoid.toInvOneClass.{u_1} α\n          (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        (@Inv.inv.{u_1} α\n          (@InvOneClass.toInv.{u_1} α\n            (@DivInvOneMonoid.toInvOneClass.{u_1} α\n              (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n          a)\n        (@Inv.inv.{u_1} α\n          (@InvOneClass.toInv.{u_1} α\n            (@DivInvOneMonoid.toInvOneClass.{u_1} α\n              (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n          b)))\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d99efced4672279cfa6f1994a8111f189bbbbb38cff11f9bd2506b272f9725dc","qualified_name":"inv_involutive","statement":"∀ {G : Type u_3} [inst : InvolutiveInv.{u_3} G],\n  @Function.Involutive.{u_3 + 1} G (@Inv.inv.{u_3} G (@InvolutiveInv.toInv.{u_3} G inst))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-7e2c126b58ea445527b11ece86be65ea0211367afe28eed5269a1f5d23bfcb76","qualified_name":"inv_mul'","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@Inv.inv.{u_1} α\n      (@InvOneClass.toInv.{u_1} α\n        (@DivInvOneMonoid.toInvOneClass.{u_1} α\n          (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α\n                  (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n        a b))\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α\n            (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-826de7e075468ba5bfcd4babb7f1263e1a299324b274d22ebc2e0425c9163a8c","qualified_name":"inv_mul_eq_div","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α\n            (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a)\n      b)\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      b a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-458158eb67d8e548cd916cf72dadfbfe47df311749abeb4286a8bb4b7b32fb23","qualified_name":"inv_mul_eq_iff_eq_mul","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          a)\n        b)\n      c)\n    (@Eq.{u_3 + 1} G b\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-005fe012952f648ba9507ec591e85c9b176e9e231755ee46feb3064e7a63b640","qualified_name":"inv_mul_eq_inv_mul_iff_mul_eq_mul","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] {a b c d : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G\n                (@DivisionCommMonoid.toDivisionMonoid.{u_3} G (@CommGroup.toDivisionCommMonoid.{u_3} G inst)))))\n          b)\n        a)\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G\n                (@DivisionCommMonoid.toDivisionMonoid.{u_3} G (@CommGroup.toDivisionCommMonoid.{u_3} G inst)))))\n          d)\n        c))\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        a d)\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        c b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-0ef76ec9da49689190140067d45c571667c1dc60bd14e1bf998491b324371f15","qualified_name":"inv_mul_eq_of_eq_mul","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G b\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a c) →\n    @Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          a)\n        b)\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c65ad574833d32942556d2f2dd693c4eb74295078daf625e94ce415ff481252c","qualified_name":"inv_mul_eq_one","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          a)\n        b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-64cdf4fc16656d80bed480ffd046b288c0208cde0605b506f2135b44fe9f58bf","qualified_name":"inv_ne_one","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] {a : α},\n  Iff\n    (@Ne.{u_1 + 1} α\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))\n        a)\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@InvOneClass.toOne.{u_1} α\n            (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst))))))\n    (@Ne.{u_1 + 1} α a\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@InvOneClass.toOne.{u_1} α\n            (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-3927aae810afaf82964f0f97b244d52ee46cf79c6fcacf49e7e3c328f03cafb5","qualified_name":"inv_neg","statement":"∀ {R : Type u_1} [inst : DivisionMonoid.{u_1} R]\n  [inst_1 :\n    @HasDistribNeg.{u_1} R\n      (@MulOne.toMul.{u_1} R\n        (@MulOneClass.toMulOne.{u_1} R\n          (@Monoid.toMulOneClass.{u_1} R\n            (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))]\n  {a : R},\n  @Eq.{u_1 + 1} R\n    (@Inv.inv.{u_1} R\n      (@InvOneClass.toInv.{u_1} R\n        (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))\n      (@Neg.neg.{u_1} R\n        (@InvolutiveNeg.toNeg.{u_1} R\n          (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n            (@MulOne.toMul.{u_1} R\n              (@MulOneClass.toMulOne.{u_1} R\n                (@Monoid.toMulOneClass.{u_1} R\n                  (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n            inst_1))\n        a))\n    (@Neg.neg.{u_1} R\n      (@InvolutiveNeg.toNeg.{u_1} R\n        (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n          (@MulOne.toMul.{u_1} R\n            (@MulOneClass.toMulOne.{u_1} R\n              (@Monoid.toMulOneClass.{u_1} R\n                (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n          inst_1))\n      (@Inv.inv.{u_1} R\n        (@InvOneClass.toInv.{u_1} R\n          (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))\n        a))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-e39a71f1509c9543f6ee08ad5e45ee29a95d354fe597e70e071d32d06d9b2dff","qualified_name":"inv_neg_one","statement":"∀ {R : Type u_1} [inst : DivisionMonoid.{u_1} R]\n  [inst_1 :\n    @HasDistribNeg.{u_1} R\n      (@MulOne.toMul.{u_1} R\n        (@MulOneClass.toMulOne.{u_1} R\n          (@Monoid.toMulOneClass.{u_1} R\n            (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))],\n  @Eq.{u_1 + 1} R\n    (@Inv.inv.{u_1} R\n      (@InvOneClass.toInv.{u_1} R\n        (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))\n      (@Neg.neg.{u_1} R\n        (@InvolutiveNeg.toNeg.{u_1} R\n          (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n            (@MulOne.toMul.{u_1} R\n              (@MulOneClass.toMulOne.{u_1} R\n                (@Monoid.toMulOneClass.{u_1} R\n                  (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n            inst_1))\n        (@OfNat.ofNat.{u_1} R (nat_lit 1)\n          (@One.toOfNat1.{u_1} R\n            (@InvOneClass.toOne.{u_1} R\n              (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))))))\n    (@Neg.neg.{u_1} R\n      (@InvolutiveNeg.toNeg.{u_1} R\n        (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n          (@MulOne.toMul.{u_1} R\n            (@MulOneClass.toMulOne.{u_1} R\n              (@Monoid.toMulOneClass.{u_1} R\n                (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n          inst_1))\n      (@OfNat.ofNat.{u_1} R (nat_lit 1)\n        (@One.toOfNat1.{u_1} R\n          (@InvOneClass.toOne.{u_1} R\n            (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-530ae9957aae9810333a954519d651e229f869c2419fd35e8f1e71f3d567be82","qualified_name":"inv_pow","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a : α) (n : Nat),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, 0, u_1} α Nat α\n      (@instHPow.{u_1, 0} α Nat\n        (@NPow.toPow.{u_1} α\n          (@Monoid.toNPow.{u_1} α (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))))\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))\n        a)\n      n)\n    (@Inv.inv.{u_1} α\n      (@InvOneClass.toInv.{u_1} α\n        (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))\n      (@HPow.hPow.{u_1, 0, u_1} α Nat α\n        (@instHPow.{u_1, 0} α Nat\n          (@NPow.toPow.{u_1} α\n            (@Monoid.toNPow.{u_1} α (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))))\n        a n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-49cb814a58af2ec0461f00fc49053c845738d55e3abd86feb84a031704ab0d42","qualified_name":"inv_pow_sub","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a : G) {m n : Nat},\n  @LE.le.{0} Nat instLENat n m →\n    @Eq.{u_3 + 1} G\n      (@HPow.hPow.{u_3, 0, u_3} G Nat G\n        (@instHPow.{u_3, 0} G Nat\n          (@NPow.toPow.{u_3} G\n            (@Monoid.toNPow.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))))\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          a)\n        (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) m n))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          (@HPow.hPow.{u_3, 0, u_3} G Nat G\n            (@instHPow.{u_3, 0} G Nat\n              (@NPow.toPow.{u_3} G\n                (@Monoid.toNPow.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))))\n            a m))\n        (@HPow.hPow.{u_3, 0, u_3} G Nat G\n          (@instHPow.{u_3, 0} G Nat\n            (@NPow.toPow.{u_3} G\n              (@Monoid.toNPow.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))))\n          a n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-9d98e1d6f47d2afa316ee43fa4a5adca4f50c352f4ed4aec18cccb30c5c00949","qualified_name":"inv_surjective","statement":"∀ {G : Type u_3} [inst : InvolutiveInv.{u_3} G],\n  @Function.Surjective.{u_3 + 1, u_3 + 1} G G (@Inv.inv.{u_3} G (@InvolutiveInv.toInv.{u_3} G inst))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-faf6690c85c349f3827cbfe9bb370a10225ddbfd625b1433ce093f14f270bd8a","qualified_name":"inv_unique","statement":"∀ {M : Type u_4} [inst : CommMonoid.{u_4} M] {x y z : M},\n  @Eq.{u_4 + 1} M\n      (@HMul.hMul.{u_4, u_4, u_4} M M M\n        (@instHMul.{u_4} M\n          (@MulOne.toMul.{u_4} M\n            (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M (@CommMonoid.toMonoid.{u_4} M inst)))))\n        x y)\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M\n          (@MulOne.toOne.{u_4} M\n            (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M (@CommMonoid.toMonoid.{u_4} M inst)))))) →\n    @Eq.{u_4 + 1} M\n        (@HMul.hMul.{u_4, u_4, u_4} M M M\n          (@instHMul.{u_4} M\n            (@MulOne.toMul.{u_4} M\n              (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M (@CommMonoid.toMonoid.{u_4} M inst)))))\n          x z)\n        (@OfNat.ofNat.{u_4} M (nat_lit 1)\n          (@One.toOfNat1.{u_4} M\n            (@MulOne.toOne.{u_4} M\n              (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M (@CommMonoid.toMonoid.{u_4} M inst)))))) →\n      @Eq.{u_4 + 1} M y z"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-3bb265e4a22b6762ea310c394c2ee0b60daf8b387f544fa223984cb10a022b3b","qualified_name":"inv_zpow","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a : α) (n : Int),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, 0, u_1} α Int α\n      (@instHPow.{u_1, 0} α Int\n        (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))\n        a)\n      n)\n    (@Inv.inv.{u_1} α\n      (@InvOneClass.toInv.{u_1} α\n        (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))\n      (@HPow.hPow.{u_1, 0, u_1} α Int α\n        (@instHPow.{u_1, 0} α Int\n          (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n        a n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-71d02e0d974858fea0165a6740f68aa1662dac0af39be542b0d9ff244fa080ce","qualified_name":"inv_zpow'","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a : α) (n : Int),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, 0, u_1} α Int α\n      (@instHPow.{u_1, 0} α Int\n        (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))\n        a)\n      n)\n    (@HPow.hPow.{u_1, 0, u_1} α Int α\n      (@instHPow.{u_1, 0} α Int\n        (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n      a (@Neg.neg.{0} Int Int.instNegInt n))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-82f81f3b6313f94cf1b5d8450f890e2531b1393207f7ec77cbedf7c605e8ff75","qualified_name":"isCancelMulZero_iff_isDomain_or_subsingleton","statement":"∀ (α : Type u_3) [inst : Semiring.{u_3} α],\n  Iff\n    (@IsCancelMulZero.{u_3} α (@Distrib.toMul.{u_3} α (@instDistribOfSemiring.{u_3} α inst))\n      (@MulZeroClass.toZero.{u_3} α (@instMulZeroClassOfSemiring.{u_3} α inst)))\n    (Or (@IsDomain.{u_3} α inst) (Subsingleton.{u_3 + 1} α))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-ad6dc9234b8ab580e191243d47dcdfc267afc643776ead6609c660ced0c9112e","qualified_name":"isCancelMulZero_iff_noZeroDivisors","statement":"∀ {R : Type u_3} [inst : NonUnitalNonAssocRing.{u_3} R],\n  Iff\n    (@IsCancelMulZero.{u_3} R\n      (@Distrib.toMul.{u_3} R\n        (@NonUnitalNonAssocSemiring.toDistrib.{u_3} R\n          (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst)))\n      (@MulZeroClass.toZero.{u_3} R\n        (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n          (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))\n    (@NoZeroDivisors.{u_3} R\n      (@Distrib.toMul.{u_3} R\n        (@NonUnitalNonAssocSemiring.toDistrib.{u_3} R\n          (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst)))\n      (@MulZeroClass.toZero.{u_3} R\n        (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n          (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-1a912c600fb50eb6a1f4f9765c203dc3b38b9f76574baaab8809075c8d34b77c","qualified_name":"isClosed_biInter","statement":"∀ {X : Type u} {α : Type u_1} [inst : TopologicalSpace.{u} X] {s : Set.{u_1} α} {f : α → Set.{u} X},\n  (∀ (i : α),\n      @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s i → @IsClosed.{u} X inst (f i)) →\n    @IsClosed.{u} X inst\n      (⋂ i, ⋂ (_ : @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s i), f i)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-7d17b50b225f13eef0bbcf4ae14139488af2462468b6e438b6fb85ed44ed10e1","qualified_name":"isClosed_biUnion_finset","statement":"∀ {X : Type u} {α : Type u_1} [inst : TopologicalSpace.{u} X] {s : Finset.{u_1} α} {f : α → Set.{u} X},\n  (∀ (i : α),\n      @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n          (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s i →\n        @IsClosed.{u} X inst (f i)) →\n    @IsClosed.{u} X inst\n      (⋃ i,\n        ⋃ (_ :\n          @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n            (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s i),\n          f i)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-fe2f35b5a951c0dcc3f84b8961907580bb23da7e52e4593b2b65df123980e0d2","qualified_name":"isClosed_compl_iff","statement":"∀ {X : Type u} [inst : TopologicalSpace.{u} X] {s : Set.{u} X},\n  Iff (@IsClosed.{u} X inst (@Compl.compl.{u} (Set.{u} X) (@Set.instCompl.{u} X) s)) (@IsOpen.{u} X inst s)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-b1939ee36927a68635c19bdfa38d5cdc42f095f0b9fedb2d9a70585c67f3a049","qualified_name":"isClosed_const","statement":"∀ {X : Type u} [inst : TopologicalSpace.{u} X] {p : Prop}, @IsClosed.{u} X inst (@Set.ofPred.{u} X fun _x => p)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-09ef37ea67c0a7ef99fc1de15ac1f9d3285bb71c68da573eed87d0335ea320e3","qualified_name":"isClosed_empty","statement":"∀ {X : Type u} [inst : TopologicalSpace.{u} X],\n  @IsClosed.{u} X inst (@EmptyCollection.emptyCollection.{u} (Set.{u} X) (@Set.instEmptyCollection.{u} X))"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-dd5d33fa455ca80cfe77ce6539b2e311345517697fda7dfce2d83ca2a8e18c1b","qualified_name":"isClosed_iInter","statement":"∀ {X : Type u} {ι : Sort v} [inst : TopologicalSpace.{u} X] {f : ι → Set.{u} X},\n  (∀ (i : ι), @IsClosed.{u} X inst (f i)) → @IsClosed.{u} X inst (⋂ i, f i)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-839b3abfbeff7e02b079fba208b0bf8ceb33c6c1bd8de7c1765e2852a929fc20","qualified_name":"isClosed_iUnion_of_finite","statement":"∀ {X : Type u} {ι : Sort v} [inst : TopologicalSpace.{u} X] [Finite.{v} ι] {s : ι → Set.{u} X},\n  (∀ (i : ι), @IsClosed.{u} X inst (s i)) → @IsClosed.{u} X inst (⋃ i, s i)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-9ff4bdb2ce53787a9a3dc6461be4ff9f8eca0061464332e2de04fe4ff76945f0","qualified_name":"isClosed_imp","statement":"∀ {X : Type u} [inst : TopologicalSpace.{u} X] {p q : X → Prop},\n  @IsOpen.{u} X inst (@Set.ofPred.{u} X fun x => p x) →\n    @IsClosed.{u} X inst (@Set.ofPred.{u} X fun x => q x) → @IsClosed.{u} X inst (@Set.ofPred.{u} X fun x => p x → q x)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-2b41694db32bc95c89ada80b1e659006c60e9a3bc0df8a02f600c8c681e175ee","qualified_name":"isClosed_sInter","statement":"∀ {X : Type u} [inst : TopologicalSpace.{u} X] {s : Set.{u} (Set.{u} X)},\n  (∀ (t : Set.{u} X),\n      @Membership.mem.{u, u} (Set.{u} X) (Set.{u} (Set.{u} X)) (@Set.instMembership.{u} (Set.{u} X)) s t →\n        @IsClosed.{u} X inst t) →\n    @IsClosed.{u} X inst (@Set.sInter.{u} X s)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-cd39e08e98a83857653c50c3f25a2a54096876c1f784a58136a0703eb79f0229","qualified_name":"isClosed_univ","statement":"∀ {X : Type u} [inst : TopologicalSpace.{u} X], @IsClosed.{u} X inst (@Set.univ.{u} X)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-a4f6601c89e6feb91af0178cb1453eb0231ffa7fe1a315f4ce86e00648e1ce5d","qualified_name":"isDomain_iff_cancelMulZero_and_nontrivial","statement":"∀ (α : Type u_3) [inst : Semiring.{u_3} α],\n  Iff (@IsDomain.{u_3} α inst)\n    (And\n      (@IsCancelMulZero.{u_3} α (@Distrib.toMul.{u_3} α (@instDistribOfSemiring.{u_3} α inst))\n        (@MulZeroClass.toZero.{u_3} α (@instMulZeroClassOfSemiring.{u_3} α inst)))\n      (Nontrivial.{u_3} α))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-2a30b19b78cd5e75264e84d8c1098408a7ac71cda0b1fbc2d161fea4b8f8d315","qualified_name":"isDomain_iff_noZeroDivisors_and_nontrivial","statement":"∀ (α : Type u_3) [inst : Ring.{u_3} α],\n  Iff (@IsDomain.{u_3} α (@Ring.toSemiring.{u_3} α inst))\n    (And\n      (@NoZeroDivisors.{u_3} α (@Distrib.toMul.{u_3} α (@instDistribOfSemiring.{u_3} α (@Ring.toSemiring.{u_3} α inst)))\n        (@MulZeroClass.toZero.{u_3} α (@instMulZeroClassOfSemiring.{u_3} α (@Ring.toSemiring.{u_3} α inst))))\n      (Nontrivial.{u_3} α))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-f75efa1d445190da1eec5f56f98ac92360fca69795ccd6ee8ce025290c1aa110","qualified_name":"isLeftRegular_iff_right_eq_zero_of_mul","statement":"∀ {R : Type u_3} [inst : NonUnitalNonAssocRing.{u_3} R] {r : R},\n  Iff\n    (@IsLeftRegular.{u_3} R\n      (@Distrib.toMul.{u_3} R\n        (@NonUnitalNonAssocSemiring.toDistrib.{u_3} R\n          (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst)))\n      r)\n    (∀ (x : R),\n      @Eq.{u_3 + 1} R\n          (@HMul.hMul.{u_3, u_3, u_3} R R R\n            (@instHMul.{u_3} R\n              (@Distrib.toMul.{u_3} R\n                (@NonUnitalNonAssocSemiring.toDistrib.{u_3} R\n                  (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))\n            r x)\n          (@OfNat.ofNat.{u_3} R (nat_lit 0)\n            (@Zero.toOfNat0.{u_3} R\n              (@MulZeroClass.toZero.{u_3} R\n                (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n                  (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))) →\n        @Eq.{u_3 + 1} R x\n          (@OfNat.ofNat.{u_3} R (nat_lit 0)\n            (@Zero.toOfNat0.{u_3} R\n              (@MulZeroClass.toZero.{u_3} R\n                (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n                  (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))))"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-a12785b83751f08b9d3e1f5f910e6c8852d496f2d962ed05799cb3155ec25b75","qualified_name":"isOpen_biInter_finset","statement":"∀ {X : Type u} {α : Type u_1} [inst : TopologicalSpace.{u} X] {s : Finset.{u_1} α} {f : α → Set.{u} X},\n  (∀ (i : α),\n      @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n          (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s i →\n        @IsOpen.{u} X inst (f i)) →\n    @IsOpen.{u} X inst\n      (⋂ i,\n        ⋂ (_ :\n          @Membership.mem.{u_1, u_1} α (Finset.{u_1} α)\n            (@SetLike.instMembership.{u_1, u_1} (Finset.{u_1} α) α (@Finset.instSetLike.{u_1} α)) s i),\n          f i)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-a43a6063adb5553ecc4fe14e187d2e002bb9b339caecfb70a330585fc5a7636d","qualified_name":"isOpen_biUnion","statement":"∀ {X : Type u} {α : Type u_1} [inst : TopologicalSpace.{u} X] {s : Set.{u_1} α} {f : α → Set.{u} X},\n  (∀ (i : α), @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s i → @IsOpen.{u} X inst (f i)) →\n    @IsOpen.{u} X inst (⋃ i, ⋃ (_ : @Membership.mem.{u_1, u_1} α (Set.{u_1} α) (@Set.instMembership.{u_1} α) s i), f i)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-bb3fd1be1d186b4a4a0bfa2fa04ade8145e09c06d5e6c70289f4907e486a0efb","qualified_name":"isOpen_compl_iff","statement":"∀ {X : Type u} {s : Set.{u} X} [inst : TopologicalSpace.{u} X],\n  Iff (@IsOpen.{u} X inst (@Compl.compl.{u} (Set.{u} X) (@Set.instCompl.{u} X) s)) (@IsClosed.{u} X inst s)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-e9bf362328d3a926a167ced94179124b1890884ecbb348938fc858b9ba7d0f4a","qualified_name":"isOpen_const","statement":"∀ {X : Type u} [inst : TopologicalSpace.{u} X] {p : Prop}, @IsOpen.{u} X inst (@Set.ofPred.{u} X fun _x => p)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-b40203aa8f3692ae53c553212987d6abbdc17819636c60285543fb48e2db6bb5","qualified_name":"isOpen_empty","statement":"∀ {X : Type u} [inst : TopologicalSpace.{u} X],\n  @IsOpen.{u} X inst (@EmptyCollection.emptyCollection.{u} (Set.{u} X) (@Set.instEmptyCollection.{u} X))"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-e6d1028e0f9aa8948e5277af02f11916675782e325e9fa958cc50d5047b189cd","qualified_name":"isOpen_fold","statement":"∀ {X : Type u} {s : Set.{u} X} {t : TopologicalSpace.{u} X},\n  @Eq.{1} Prop (@TopologicalSpace.IsOpen.{u} X t s) (@IsOpen.{u} X t s)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-ec51cb77120614a74ce6319ac81bd22dc6ab82e21834b92935e3e01847333fc3","qualified_name":"isOpen_iInter_of_finite","statement":"∀ {X : Type u} {ι : Sort v} [inst : TopologicalSpace.{u} X] [Finite.{v} ι] {s : ι → Set.{u} X},\n  (∀ (i : ι), @IsOpen.{u} X inst (s i)) → @IsOpen.{u} X inst (⋂ i, s i)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-6c9e5479d7aff62230df3ffde8177b0691b46adaffd305285b589a45d4ad39d9","qualified_name":"isOpen_iUnion","statement":"∀ {X : Type u} {ι : Sort v} [inst : TopologicalSpace.{u} X] {f : ι → Set.{u} X},\n  (∀ (i : ι), @IsOpen.{u} X inst (f i)) → @IsOpen.{u} X inst (⋃ i, f i)"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-a8d0dda292df7530d3fba0c3126c21a15d6d48bb849052553dec346cbf56e79e","qualified_name":"isOpen_iff_of_cover","statement":"∀ {X : Type u} {α : Type u_1} {s : Set.{u} X} [inst : TopologicalSpace.{u} X] {f : α → Set.{u} X},\n  (∀ (i : α), @IsOpen.{u} X inst (f i)) →\n    @Eq.{u + 1} (Set.{u} X) (⋃ i, f i) (@Set.univ.{u} X) →\n      Iff (@IsOpen.{u} X inst s)\n        (∀ (i : α), @IsOpen.{u} X inst (@Inter.inter.{u} (Set.{u} X) (@Set.instInter.{u} X) (f i) s))"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-1d54619e3b0802e49e21725d145a3e04570d1c216fee9d4117aa1c73bd4f271f","qualified_name":"isOpen_mk","statement":"∀ {X : Type u} {s : Set.{u} X} {p : Set.{u} X → Prop} {h₁ : p (@Set.univ.{u} X)}\n  {h₂ : ∀ (s t : Set.{u} X), p s → p t → p (@Inter.inter.{u} (Set.{u} X) (@Set.instInter.{u} X) s t)}\n  {h₃ :\n    ∀ (s : Set.{u} (Set.{u} X)),\n      (∀ (t : Set.{u} X),\n          @Membership.mem.{u, u} (Set.{u} X) (Set.{u} (Set.{u} X)) (@Set.instMembership.{u} (Set.{u} X)) s t → p t) →\n        p (@Set.sUnion.{u} X s)},\n  Iff (@IsOpen.{u} X (@TopologicalSpace.mk.{u} X p h₁ h₂ h₃) s) (p s)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-e7ba3498ef1b16ae7d8ec946ac08101c6188da6911087c39f9bad30f3084de24","qualified_name":"isRegular_iff_eq_zero_of_mul","statement":"∀ {R : Type u_3} [inst : NonUnitalNonAssocRing.{u_3} R] {r : R},\n  Iff\n    (@IsRegular.{u_3} R\n      (@Distrib.toMul.{u_3} R\n        (@NonUnitalNonAssocSemiring.toDistrib.{u_3} R\n          (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst)))\n      r)\n    (And\n      (∀ (x : R),\n        @Eq.{u_3 + 1} R\n            (@HMul.hMul.{u_3, u_3, u_3} R R R\n              (@instHMul.{u_3} R\n                (@Distrib.toMul.{u_3} R\n                  (@NonUnitalNonAssocSemiring.toDistrib.{u_3} R\n                    (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))\n              r x)\n            (@OfNat.ofNat.{u_3} R (nat_lit 0)\n              (@Zero.toOfNat0.{u_3} R\n                (@MulZeroClass.toZero.{u_3} R\n                  (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n                    (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))) →\n          @Eq.{u_3 + 1} R x\n            (@OfNat.ofNat.{u_3} R (nat_lit 0)\n              (@Zero.toOfNat0.{u_3} R\n                (@MulZeroClass.toZero.{u_3} R\n                  (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n                    (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))))\n      (∀ (x : R),\n        @Eq.{u_3 + 1} R\n            (@HMul.hMul.{u_3, u_3, u_3} R R R\n              (@instHMul.{u_3} R\n                (@Distrib.toMul.{u_3} R\n                  (@NonUnitalNonAssocSemiring.toDistrib.{u_3} R\n                    (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))\n              x r)\n            (@OfNat.ofNat.{u_3} R (nat_lit 0)\n              (@Zero.toOfNat0.{u_3} R\n                (@MulZeroClass.toZero.{u_3} R\n                  (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n                    (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))) →\n          @Eq.{u_3 + 1} R x\n            (@OfNat.ofNat.{u_3} R (nat_lit 0)\n              (@Zero.toOfNat0.{u_3} R\n                (@MulZeroClass.toZero.{u_3} R\n                  (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n                    (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst)))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-5e8db16559c94d86bc109f21b6e1bcdfb31273ecaf928cf5ea13466defadc08b","qualified_name":"isRightRegular_iff_left_eq_zero_of_mul","statement":"∀ {R : Type u_3} [inst : NonUnitalNonAssocRing.{u_3} R] {r : R},\n  Iff\n    (@IsRightRegular.{u_3} R\n      (@Distrib.toMul.{u_3} R\n        (@NonUnitalNonAssocSemiring.toDistrib.{u_3} R\n          (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst)))\n      r)\n    (∀ (x : R),\n      @Eq.{u_3 + 1} R\n          (@HMul.hMul.{u_3, u_3, u_3} R R R\n            (@instHMul.{u_3} R\n              (@Distrib.toMul.{u_3} R\n                (@NonUnitalNonAssocSemiring.toDistrib.{u_3} R\n                  (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))\n            x r)\n          (@OfNat.ofNat.{u_3} R (nat_lit 0)\n            (@Zero.toOfNat0.{u_3} R\n              (@MulZeroClass.toZero.{u_3} R\n                (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n                  (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))) →\n        @Eq.{u_3 + 1} R x\n          (@OfNat.ofNat.{u_3} R (nat_lit 0)\n            (@Zero.toOfNat0.{u_3} R\n              (@MulZeroClass.toZero.{u_3} R\n                (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n                  (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-c15e939bb15233d160bb477b47627b6242167331726156491c954701c16e6e12","qualified_name":"isSelfInv_neg_iff","statement":"∀ {R : Type u_1} [inst : DivisionMonoid.{u_1} R]\n  [inst_1 :\n    @HasDistribNeg.{u_1} R\n      (@MulOne.toMul.{u_1} R\n        (@MulOneClass.toMulOne.{u_1} R\n          (@Monoid.toMulOneClass.{u_1} R\n            (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))]\n  {a : R},\n  Iff\n    (@IsSelfInv.{u_1} R\n      (@InvOneClass.toInv.{u_1} R\n        (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))\n      (@Neg.neg.{u_1} R\n        (@InvolutiveNeg.toNeg.{u_1} R\n          (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n            (@MulOne.toMul.{u_1} R\n              (@MulOneClass.toMulOne.{u_1} R\n                (@Monoid.toMulOneClass.{u_1} R\n                  (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n            inst_1))\n        a))\n    (@IsSelfInv.{u_1} R\n      (@InvOneClass.toInv.{u_1} R\n        (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-f88c9fde606c2dd386221cc5b01099cdb0ba42d1b46bc2ee8c642d5f579337b2","qualified_name":"isSelfNeg_inv_iff","statement":"∀ {R : Type u_1} [inst : DivisionMonoid.{u_1} R]\n  [inst_1 :\n    @HasDistribNeg.{u_1} R\n      (@MulOne.toMul.{u_1} R\n        (@MulOneClass.toMulOne.{u_1} R\n          (@Monoid.toMulOneClass.{u_1} R\n            (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))]\n  {a : R},\n  Iff\n    (@IsSelfNeg.{u_1} R\n      (@InvolutiveNeg.toNeg.{u_1} R\n        (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n          (@MulOne.toMul.{u_1} R\n            (@MulOneClass.toMulOne.{u_1} R\n              (@Monoid.toMulOneClass.{u_1} R\n                (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n          inst_1))\n      (@Inv.inv.{u_1} R\n        (@InvOneClass.toInv.{u_1} R\n          (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))\n        a))\n    (@IsSelfNeg.{u_1} R\n      (@InvolutiveNeg.toNeg.{u_1} R\n        (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n          (@MulOne.toMul.{u_1} R\n            (@MulOneClass.toMulOne.{u_1} R\n              (@Monoid.toMulOneClass.{u_1} R\n                (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n          inst_1))\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e99127e1aedb6e96c1689827d5a87f341b831a628887ee4a4f05e19dc2ee431d","qualified_name":"ite_add_zero","statement":"∀ {M : Type u_4} [inst : AddZeroClass.{u_4} M] {P : Prop} [inst_1 : Decidable P] {a b : M},\n  @Eq.{u_4 + 1} M\n    (@ite.{u_4 + 1} M P inst_1\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst))) a b)\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst)))))\n    (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n      (@instHAdd.{u_4} M (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst)))\n      (@ite.{u_4 + 1} M P inst_1 a\n        (@OfNat.ofNat.{u_4} M (nat_lit 0)\n          (@Zero.toOfNat0.{u_4} M (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst)))))\n      (@ite.{u_4 + 1} M P inst_1 b\n        (@OfNat.ofNat.{u_4} M (nat_lit 0)\n          (@Zero.toOfNat0.{u_4} M (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d9040f62da5b54443fa829e52245d42fd6a55f31785131db3cd6e3ac2bde722d","qualified_name":"ite_mul_one","statement":"∀ {M : Type u_4} [inst : MulOneClass.{u_4} M] {P : Prop} [inst_1 : Decidable P] {a b : M},\n  @Eq.{u_4 + 1} M\n    (@ite.{u_4 + 1} M P inst_1\n      (@HMul.hMul.{u_4, u_4, u_4} M M M (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst)))\n        a b)\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst)))))\n    (@HMul.hMul.{u_4, u_4, u_4} M M M (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst)))\n      (@ite.{u_4 + 1} M P inst_1 a\n        (@OfNat.ofNat.{u_4} M (nat_lit 1)\n          (@One.toOfNat1.{u_4} M (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst)))))\n      (@ite.{u_4 + 1} M P inst_1 b\n        (@OfNat.ofNat.{u_4} M (nat_lit 1)\n          (@One.toOfNat1.{u_4} M (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-9950d9b6307dd68c47c338114ff21e8ba15e89be3f8ac366c63a4b4c4922d48a","qualified_name":"ite_one_mul","statement":"∀ {M : Type u_4} [inst : MulOneClass.{u_4} M] {P : Prop} [inst_1 : Decidable P] {a b : M},\n  @Eq.{u_4 + 1} M\n    (@ite.{u_4 + 1} M P inst_1\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst))))\n      (@HMul.hMul.{u_4, u_4, u_4} M M M (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst)))\n        a b))\n    (@HMul.hMul.{u_4, u_4, u_4} M M M (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst)))\n      (@ite.{u_4 + 1} M P inst_1\n        (@OfNat.ofNat.{u_4} M (nat_lit 1)\n          (@One.toOfNat1.{u_4} M (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst))))\n        a)\n      (@ite.{u_4 + 1} M P inst_1\n        (@OfNat.ofNat.{u_4} M (nat_lit 1)\n          (@One.toOfNat1.{u_4} M (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst))))\n        b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ad80355f7121967d094a693274faee52c6e3dd9a8873c61a3137602e936d9979","qualified_name":"ite_pow","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : Pow.{u_1, u_2} α β] (p : Prop) [inst_1 : Decidable p] (a b : α) (c : β),\n  @Eq.{u_1 + 1} α (@HPow.hPow.{u_1, u_2, u_1} α β α (@instHPow.{u_1, u_2} α β inst) (@ite.{u_1 + 1} α p inst_1 a b) c)\n    (@ite.{u_1 + 1} α p inst_1 (@HPow.hPow.{u_1, u_2, u_1} α β α (@instHPow.{u_1, u_2} α β inst) a c)\n      (@HPow.hPow.{u_1, u_2, u_1} α β α (@instHPow.{u_1, u_2} α β inst) b c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-abbd40e86137e8c2e2a63a82338b16ec42746c3f2973517e05779703892c82b4","qualified_name":"ite_smul","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : SMul.{u_2, u_1} β α] (p : Prop) [inst_1 : Decidable p] (a : α) (b c : β),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{u_2, u_1, u_1} β α α (@instHSMul.{u_2, u_1} β α inst) (@ite.{u_2 + 1} β p inst_1 b c) a)\n    (@ite.{u_1 + 1} α p inst_1 (@HSMul.hSMul.{u_2, u_1, u_1} β α α (@instHSMul.{u_2, u_1} β α inst) b a)\n      (@HSMul.hSMul.{u_2, u_1, u_1} β α α (@instHSMul.{u_2, u_1} β α inst) c a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-913c18b26b1e18ed902e4d17a3a20d3844aabd93f40434d65d5b887d35b2723f","qualified_name":"ite_vadd","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : VAdd.{u_2, u_1} β α] (p : Prop) [inst_1 : Decidable p] (a : α) (b c : β),\n  @Eq.{u_1 + 1} α\n    (@HVAdd.hVAdd.{u_2, u_1, u_1} β α α (@instHVAdd.{u_2, u_1} β α inst) (@ite.{u_2 + 1} β p inst_1 b c) a)\n    (@ite.{u_1 + 1} α p inst_1 (@HVAdd.hVAdd.{u_2, u_1, u_1} β α α (@instHVAdd.{u_2, u_1} β α inst) b a)\n      (@HVAdd.hVAdd.{u_2, u_1, u_1} β α α (@instHVAdd.{u_2, u_1} β α inst) c a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e93eda313916f774068b433ba820bce4df67de07b91b3cfe5c74dafe2d05a5d2","qualified_name":"ite_zero_add","statement":"∀ {M : Type u_4} [inst : AddZeroClass.{u_4} M] {P : Prop} [inst_1 : Decidable P] {a b : M},\n  @Eq.{u_4 + 1} M\n    (@ite.{u_4 + 1} M P inst_1\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst))))\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst))) a b))\n    (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n      (@instHAdd.{u_4} M (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst)))\n      (@ite.{u_4 + 1} M P inst_1\n        (@OfNat.ofNat.{u_4} M (nat_lit 0)\n          (@Zero.toOfNat0.{u_4} M (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst))))\n        a)\n      (@ite.{u_4 + 1} M P inst_1\n        (@OfNat.ofNat.{u_4} M (nat_lit 0)\n          (@Zero.toOfNat0.{u_4} M (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst))))\n        b))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-d49767e702c9a7c37227dda0a2df80fcd555b63d0fb3cc413b6d81abaefd1935","qualified_name":"le_iff_eq_or_lt","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)\n    (Or (@Eq.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-5fc8cfc96161c7c35e6dd7bd4fde323b720b4286ad59cc4d98088081ff8a6d7c","qualified_name":"le_iff_eq_or_lt'","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)\n    (Or (@Eq.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-b2308e8836007c2f319bc5c7bdd859ae0e94e6041d7d2e22b552c4b52bf950af","qualified_name":"le_iff_le_iff_lt_iff_lt","statement":"∀ {α : Type u_2} {β : Type u_5} [inst : LinearOrder.{u_2} α] [inst_1 : LinearOrder.{u_5} β] {a b : α} {c d : β},\n  Iff\n    (Iff\n      (@LE.le.{u_2} α\n        (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b)\n      (@LE.le.{u_5} β\n        (@Preorder.toLE.{u_5} β (@PartialOrder.toPreorder.{u_5} β (@LinearOrder.toPartialOrder.{u_5} β inst_1))) c d))\n    (Iff\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a)\n      (@LT.lt.{u_5} β\n        (@Preorder.toLT.{u_5} β (@PartialOrder.toPreorder.{u_5} β (@LinearOrder.toPartialOrder.{u_5} β inst_1))) d c))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-fb9496e0fedb50252319b52c9a21bd64b7649277462284f3766a1ebaf3201ca3","qualified_name":"le_imp_eq_iff_le_imp_ge","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b → @Eq.{u_2 + 1} α a b)\n    (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b →\n      @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-1cebfe09c9f31f7424d1ba7d7e5dd44e0a9505041e1b7d746b64ea8b502bcd34","qualified_name":"le_imp_eq_iff_le_imp_ge'","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a → @Eq.{u_2 + 1} α a b)\n    (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a →\n      @LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-018cb40571159983331cc95d31ddf0b28d94063f65e7c27e74ea39ce5cb50eab","qualified_name":"le_imp_le_iff_lt_imp_lt","statement":"∀ {α : Type u_2} {β : Type u_5} [inst : LinearOrder.{u_2} α] [inst_1 : LinearOrder.{u_5} β] {a b : α} {c d : β},\n  Iff\n    (@LE.le.{u_2} α\n        (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b →\n      @LE.le.{u_5} β\n        (@Preorder.toLE.{u_5} β (@PartialOrder.toPreorder.{u_5} β (@LinearOrder.toPartialOrder.{u_5} β inst_1))) c d)\n    (@LT.lt.{u_5} β\n        (@Preorder.toLT.{u_5} β (@PartialOrder.toPreorder.{u_5} β (@LinearOrder.toPartialOrder.{u_5} β inst_1))) d c →\n      @LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-a99983f98e009cbd390013169043beb049e0bded24a76ef486961214759f968e","qualified_name":"le_imp_le_of_le_of_le","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b c d : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) c a →\n    @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) b d →\n      @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a b → @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) c d"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-b18079251a0882d970b79deb8b4e1119e2c63996c5789bdde50373431eace519","qualified_name":"le_nhds_lim","statement":"∀ {X : Type u} [inst : TopologicalSpace.{u} X] {f : Filter.{u} X}\n  (h :\n    ∃ x,\n      @LE.le.{u} (Filter.{u} X)\n        (@Preorder.toLE.{u} (Filter.{u} X)\n          (@PartialOrder.toPreorder.{u} (Filter.{u} X) (@Filter.instPartialOrder.{u} X)))\n        f (@nhds.{u} X inst x)),\n  @LE.le.{u} (Filter.{u} X)\n    (@Preorder.toLE.{u} (Filter.{u} X) (@PartialOrder.toPreorder.{u} (Filter.{u} X) (@Filter.instPartialOrder.{u} X))) f\n    (@nhds.{u} X inst (@Filter.lim.{u} X inst ⋯ f))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-c4994fc8c03245e8b2512968643b9d9461f3558234db8689d8cc61c86118c072","qualified_name":"le_of_forall_ge","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b : α},\n  (∀ (c : α), @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a c → @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) b c) →\n    @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) b a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-c12f42a642d8c86cca6181cec4c40de8bc26974885c23a9b21facc808e6dd00b","qualified_name":"le_of_forall_gt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  (∀ (c : α),\n      @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a c →\n        @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b c) →\n    @LE.le.{u_2} α\n      (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-ff799edb267b87ec1627946823ee09bf33eac4f544c489b0b2c56f8ba79fcfc3","qualified_name":"le_of_forall_gt_imp_ge_of_dense","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α]\n  [@DenselyOrdered.{u_2} α\n      (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))]\n  {a₁ a₂ : α},\n  (∀ (a : α),\n      @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₂ a →\n        @LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₁ a) →\n    @LE.le.{u_2} α\n      (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₁ a₂"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-32975609d31b722027f05af18a0b34dea8ff1b817de6c0f3bcecc83a183427ce","qualified_name":"le_of_forall_gt_imp_ne","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  (∀ (c : α),\n      @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a c →\n        @Ne.{u_2 + 1} α c b) →\n    @LE.le.{u_2} α\n      (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-dc6865f883d9e675e17c04f1f1288937e67d3eda8c024afc7dc04b454c28bb2e","qualified_name":"le_of_forall_le","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b : α},\n  (∀ (c : α), @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) c a → @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) c b) →\n    @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-d01a255a924dead389ead27ca67826a0e528d9f9a5ae888b1d84b49206de12dd","qualified_name":"le_of_forall_lt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  (∀ (c : α),\n      @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c a →\n        @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c b) →\n    @LE.le.{u_2} α\n      (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-29877d9fe9b3edc2f56b7883f45fde112144d40ee2b4f3aae941bc362e0eadfe","qualified_name":"le_of_forall_lt_imp_le_of_dense","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α]\n  [@DenselyOrdered.{u_2} α\n      (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))]\n  {a₁ a₂ : α},\n  (∀ (a : α),\n      @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a a₂ →\n        @LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a a₁) →\n    @LE.le.{u_2} α\n      (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a₂ a₁"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-7101325e6d578083477691e4100046e472b5358c6721b2341b31ffec42475bd2","qualified_name":"le_of_forall_lt_imp_ne","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  (∀ (c : α),\n      @LT.lt.{u_2} α\n          (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c a →\n        @Ne.{u_2 + 1} α c b) →\n    @LE.le.{u_2} α\n      (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-08c64bfeaab95ed5dbc1d7fd5233a32c9b4cb5061187afe5b0c308501a8759a3","qualified_name":"le_of_strongLT","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → Preorder.{u_4} (π i)] {a b : (i : ι) → π i},\n  @StrongLT.{u_1, u_4} ι π (fun i => @Preorder.toLT.{u_4} (π i) (inst i)) a b →\n    @LE.le.{max u_1 u_4} ((i : ι) → π i) (@Pi.hasLe.{u_1, u_4} ι π fun i => @Preorder.toLE.{u_4} (π i) (inst i)) a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-23185abc9589c84be66f30291ae35344ccdc80e19e70ff4f5b79169b4dadea5c","qualified_name":"le_of_subsingleton","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b : α} [Subsingleton.{u_2 + 1} α],\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-cce8d3bd952354ff3ad0ad2ec323715ca15db3e63dde06b4aafa25ca1a33bfb5","qualified_name":"le_trans'","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b c : α},\n  @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) b a →\n    @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) c b → @LE.le.{u_1} α (@Preorder.toLE.{u_1} α inst) c a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-768413f89a4825b0ee38961c94053a140359e156c17881ce98641d4bf9fb1bee","qualified_name":"le_update_iff","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : DecidableEq.{u_1 + 1} ι] [inst_1 : (i : ι) → Preorder.{u_4} (π i)]\n  {x y : (i : ι) → π i} {i : ι} {a : π i},\n  Iff\n    (@LE.le.{max u_1 u_4} ((i : ι) → π i) (@Pi.hasLe.{u_1, u_4} ι π fun i => @Preorder.toLE.{u_4} (π i) (inst_1 i)) x\n      (@Function.update.{u_1 + 1, u_4 + 1} ι π inst y i a))\n    (And (@LE.le.{u_4} (π i) (@Preorder.toLE.{u_4} (π i) (inst_1 i)) (x i) a)\n      (∀ (j : ι), @Ne.{u_1 + 1} ι j i → @LE.le.{u_4} (π j) (@Preorder.toLE.{u_4} (π j) (inst_1 j)) (x j) (y j)))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-fb408933897f8de3a2ae8007953185fe3923a169bd8b273627c5bfb3f2028a90","qualified_name":"le_update_self_iff","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : DecidableEq.{u_1 + 1} ι] [inst_1 : (i : ι) → Preorder.{u_4} (π i)]\n  {x : (i : ι) → π i} {i : ι} {a : π i},\n  Iff\n    (@LE.le.{max u_1 u_4} ((i : ι) → π i) (@Pi.hasLe.{u_1, u_4} ι π fun i => @Preorder.toLE.{u_4} (π i) (inst_1 i)) x\n      (@Function.update.{u_1 + 1, u_4 + 1} ι π inst x i a))\n    (@LE.le.{u_4} (π i) (@Preorder.toLE.{u_4} (π i) (inst_1 i)) (x i) a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-649f66d4e1b1bbb50ff4f8dec98980fb2e8ac14025751d625085d5617f54f2da","qualified_name":"leftInverse_add_left_sub","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (c : G),\n  @Function.LeftInverse.{u_3 + 1, u_3 + 1} G G\n    (fun x =>\n      @HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        x c)\n    fun x =>\n    @HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) x c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-469bb606acf5782a444a21b66488fa8ac4559af0c9fd95226fdfeb726fdca867","qualified_name":"leftInverse_add_right_neg_add","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (c : G),\n  @Function.LeftInverse.{u_3 + 1, u_3 + 1} G G\n    (fun x =>\n      @HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        c x)\n    fun x =>\n    @HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      (@Neg.neg.{u_3} G\n        (@NegZeroClass.toNeg.{u_3} G\n          (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n        c)\n      x"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ef88abd655b6c154fc413ab3338016d1ce4533d33c46cc90a9c817099de7e50b","qualified_name":"leftInverse_div_mul_left","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (c : G),\n  @Function.LeftInverse.{u_3 + 1, u_3 + 1} G G\n    (fun x =>\n      @HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) x c)\n    fun x =>\n    @HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      x c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-15510140d2d04c607160961d7109740d5f01075f1a9a2cd842aff058ee664b81","qualified_name":"leftInverse_inv","statement":"∀ (G : Type u_3) [inst : InvolutiveInv.{u_3} G],\n  @Function.LeftInverse.{u_3 + 1, u_3 + 1} G G (fun a => @Inv.inv.{u_3} G (@InvolutiveInv.toInv.{u_3} G inst) a)\n    fun a => @Inv.inv.{u_3} G (@InvolutiveInv.toInv.{u_3} G inst) a"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-972ea4e294a9750ab19455011cbf1209b7f701a63375576ca0799b68f6b5a7ae","qualified_name":"leftInverse_inv_mul_mul_right","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (c : G),\n  @Function.LeftInverse.{u_3 + 1, u_3 + 1} G G\n    (fun x =>\n      @HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          c)\n        x)\n    fun x =>\n    @HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      c x"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a6bb7cb26281179cde98deeff24a916eaa3ac518645c272c23c648bc8cb2f80e","qualified_name":"leftInverse_mul_left_div","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (c : G),\n  @Function.LeftInverse.{u_3 + 1, u_3 + 1} G G\n    (fun x =>\n      @HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        x c)\n    fun x =>\n    @HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) x c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-afb6435ad2ba5b241302ba5f393c720b5cb363e84324bc4fc86802f57cd2e7cf","qualified_name":"leftInverse_mul_right_inv_mul","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (c : G),\n  @Function.LeftInverse.{u_3 + 1, u_3 + 1} G G\n    (fun x =>\n      @HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        c x)\n    fun x =>\n    @HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      (@Inv.inv.{u_3} G\n        (@InvOneClass.toInv.{u_3} G\n          (@DivInvOneMonoid.toInvOneClass.{u_3} G\n            (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n        c)\n      x"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f0c488581d595a7f9316b95a56fe33e83e0c163ca6ace7940642cf34496d0b18","qualified_name":"leftInverse_neg","statement":"∀ (G : Type u_3) [inst : InvolutiveNeg.{u_3} G],\n  @Function.LeftInverse.{u_3 + 1, u_3 + 1} G G (fun a => @Neg.neg.{u_3} G (@InvolutiveNeg.toNeg.{u_3} G inst) a)\n    fun a => @Neg.neg.{u_3} G (@InvolutiveNeg.toNeg.{u_3} G inst) a"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2f81fb8a8d45830ccba12a80666624502f2e340b7ac9bde818c0162b878c369e","qualified_name":"leftInverse_neg_add_add_right","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (c : G),\n  @Function.LeftInverse.{u_3 + 1, u_3 + 1} G G\n    (fun x =>\n      @HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          c)\n        x)\n    fun x =>\n    @HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      c x"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b921c60df401072b3e2269982b236cfb35a7e37a232cb94dc68cb861a114dcdc","qualified_name":"leftInverse_sub_add_left","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (c : G),\n  @Function.LeftInverse.{u_3 + 1, u_3 + 1} G G\n    (fun x =>\n      @HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) x c)\n    fun x =>\n    @HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      x c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2ac14cda2e818623f21e0e7837072bb6ee6adcc7f8e35ec661215c4a783d2c25","qualified_name":"left_eq_add","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M]\n  [@IsLeftCancelAdd.{u_4} M\n      (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Eq.{u_4 + 1} M a\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n        a b))\n    (@Eq.{u_4 + 1} M b\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-38f596025c78ba15175d91a3da20e5a56b831ec4408c6d3582f6e32240a44604","qualified_name":"left_eq_mul","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M]\n  [@IsLeftCancelMul.{u_4} M\n      (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Eq.{u_4 + 1} M a\n      (@HMul.hMul.{u_4, u_4, u_4} M M M\n        (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n        a b))\n    (@Eq.{u_4 + 1} M b\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M\n          (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e3b166e8d7178f17853dd64ebb47bb35180b8543675f1e99fd34b316de47ed5a","qualified_name":"left_ne_add","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M]\n  [@IsLeftCancelAdd.{u_4} M\n      (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Ne.{u_4 + 1} M a\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n        a b))\n    (@Ne.{u_4 + 1} M b\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d551e503239ef292dcc6d9d97527928f8562aec4fdf1f52fe5949c4800971359","qualified_name":"left_ne_mul","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M]\n  [@IsLeftCancelMul.{u_4} M\n      (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Ne.{u_4 + 1} M a\n      (@HMul.hMul.{u_4, u_4, u_4} M M M\n        (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n        a b))\n    (@Ne.{u_4 + 1} M b\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M\n          (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-d526007f60e4b958bdcc43a36d1604370bfe25d537ce439aac8525e3c10bb2f7","qualified_name":"limUnder_of_not_tendsto","statement":"∀ {X : Type u} {α : Type u_1} [inst : TopologicalSpace.{u} X] [hX : Nonempty.{u + 1} X] {f : Filter.{u_1} α}\n  {g : α → X},\n  Not (∃ x, @Filter.Tendsto.{u_1, u} α X g f (@nhds.{u} X inst x)) →\n    @Eq.{u + 1} X (@Filter.limUnder.{u, u_1} X inst α hX f g) (@Classical.choice.{u + 1} X hX)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-603d206db42e6edd61856cbe44989c900ba7b7d8556a8d15c3c021b6ad21fa1d","qualified_name":"lt_iff_le_and_ne","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  Iff (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)\n    (And (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b) (@Ne.{u_2 + 1} α a b))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-eab4043810a51c20200bdee3759572b03ae22561bfac4fe3c37180f0ed8fefb6","qualified_name":"lt_iff_le_and_ne'","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  Iff (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)\n    (And (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a) (@Ne.{u_2 + 1} α a b))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-5b21c18ad75cb30553eef25dae365742b9cf73b6c1545984a55b05e6cdd07662","qualified_name":"lt_iff_lt_of_le_iff_le","statement":"∀ {α : Type u_2} {β : Type u_5} [inst : LinearOrder.{u_2} α] [inst_1 : LinearOrder.{u_5} β] {a b : α} {c d : β},\n  Iff\n      (@LE.le.{u_2} α\n        (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b)\n      (@LE.le.{u_5} β\n        (@Preorder.toLE.{u_5} β (@PartialOrder.toPreorder.{u_5} β (@LinearOrder.toPartialOrder.{u_5} β inst_1))) c d) →\n    Iff\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a)\n      (@LT.lt.{u_5} β\n        (@Preorder.toLT.{u_5} β (@PartialOrder.toPreorder.{u_5} β (@LinearOrder.toPartialOrder.{u_5} β inst_1))) d c)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-ec69418715fda5de0c5d365315ddd43f24bd87316e30eb728741bba8bce4ae83","qualified_name":"lt_iff_lt_of_le_iff_le'","statement":"∀ {α : Type u_2} {β : Type u_5} [inst : Preorder.{u_2} α] [inst_1 : Preorder.{u_5} β] {a b : α} {c d : β},\n  Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a b) (@LE.le.{u_5} β (@Preorder.toLE.{u_5} β inst_1) c d) →\n    Iff (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) b a) (@LE.le.{u_5} β (@Preorder.toLE.{u_5} β inst_1) d c) →\n      Iff (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) b a) (@LT.lt.{u_5} β (@Preorder.toLT.{u_5} β inst_1) d c)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-64934a12d1cc1d2e080983f09c5f7406b872a327a161dc2a6400db95dffd5bcd","qualified_name":"lt_imp_lt_of_le_imp_le","statement":"∀ {α : Type u_2} {β : Type u_5} [inst : LinearOrder.{u_2} α] [inst_1 : Preorder.{u_5} β] {a b : α} {c d : β},\n  (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))\n        a b →\n      @LE.le.{u_5} β (@Preorder.toLE.{u_5} β inst_1) c d) →\n    @LT.lt.{u_5} β (@Preorder.toLT.{u_5} β inst_1) d c →\n      @LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-668cef4ed7817b89edc198f2cd876e8fe868b016cb4a3155d080f659bcdf708d","qualified_name":"lt_imp_lt_of_le_of_le","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b c d : α},\n  @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) c a →\n    @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) b d →\n      @LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) a b → @LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) c d"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-d4d9ec631740eab1a98771e7b0857b64b111d8ad880ee4ece309be025fa680ac","qualified_name":"lt_of_forall_ge_imp_ne","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  (∀ (c : α),\n      @LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a c →\n        @Ne.{u_2 + 1} α c b) →\n    @LT.lt.{u_2} α\n      (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-3c743fdd56968199887037ae830bb7af4bc230b285d0ec41d331e70f49865adf","qualified_name":"lt_of_forall_le_imp_ne","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  (∀ (c : α),\n      @LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) c a →\n        @Ne.{u_2 + 1} α c b) →\n    @LT.lt.{u_2} α\n      (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-4d9ab7a3d27bab7fa53d4e1c19840455d79cb1ad32fadfe280a43a23d1af1a26","qualified_name":"lt_of_strongLT","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → Preorder.{u_4} (π i)] {a b : (i : ι) → π i}\n  [Nonempty.{u_1 + 1} ι],\n  @StrongLT.{u_1, u_4} ι π (fun i => @Preorder.toLT.{u_4} (π i) (inst i)) a b →\n    @LT.lt.{max u_1 u_4} ((i : ι) → π i)\n      (@Preorder.toLT.{max u_1 u_4} ((i : ι) → π i) (@Pi.preorder.{u_1, u_4} ι π inst)) a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-fb07c21ffdbaad61d62a21eac2380a601b73d5092135d94b07eb48c0def0f461","qualified_name":"lt_or_gt_iff_ne'","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  Iff\n    (Or\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a)\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b))\n    (@Ne.{u_2 + 1} α a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-c06d45df6b523032678bf68e4f8e3f80d57f0a5bc916bda4b7b535dbaf24da82","qualified_name":"lt_or_lt_iff_ne","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  Iff\n    (Or\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b)\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a))\n    (@Ne.{u_2 + 1} α a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-433cc24043c8f5e06eaaaa39f39b11975c9c272dbb0d66a5e238d055f23a9a95","qualified_name":"lt_self_iff_false","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] (x : α), Iff (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) x x) False"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-4c0f66b85ca8a2c53acb183ed770963cf0491c179582bc0164a528b91296b445","qualified_name":"lt_trans'","statement":"∀ {α : Type u_1} [inst : Preorder.{u_1} α] {a b c : α},\n  @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) b a →\n    @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) c b → @LT.lt.{u_1} α (@Preorder.toLT.{u_1} α inst) c a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-d44d88a291e15f1f76bca52a05328e26fdaecb95a988f2772e0ea11059f37d56","qualified_name":"lt_update_self_iff","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : DecidableEq.{u_1 + 1} ι] [inst_1 : (i : ι) → Preorder.{u_4} (π i)]\n  {x : (i : ι) → π i} {i : ι} {a : π i},\n  Iff\n    (@LT.lt.{max u_1 u_4} ((i : ι) → π i)\n      (@Preorder.toLT.{max u_1 u_4} ((i : ι) → π i) (@Pi.preorder.{u_1, u_4} ι π inst_1)) x\n      (@Function.update.{u_1 + 1, u_4 + 1} ι π inst x i a))\n    (@LT.lt.{u_4} (π i) (@Preorder.toLT.{u_4} (π i) (inst_1 i)) (x i) a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-221c8abf115e38d2a0bb6c4bb032c751e11ae2a98f80f70fbb59bc7c94c08c7a","qualified_name":"max_def_lt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] (a b : α),\n  @Eq.{u_2 + 1} α (@Max.max.{u_2} α (@LinearOrder.toMax.{u_2} α inst) a b)\n    (@ite.{u_2 + 1} α\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b)\n      (@LinearOrder.toDecidableLT.{u_2} α inst a b) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-78072ffb58f0508a3324d97b1d9f2c2688b270e0e4ad1e3fc573bc12730b8390","qualified_name":"max_def_lt'","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] (a b : α),\n  @Eq.{u_2 + 1} α (@Max.max.{u_2} α (@LinearOrder.toMax.{u_2} α inst) a b)\n    (@ite.{u_2 + 1} α\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a)\n      (@LinearOrder.toDecidableLT.{u_2} α inst b a) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-2605379356b7e080106298a5e40cfdfeeb2f118323397ee76fc131b9c51ca05e","qualified_name":"max_rec","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α} {p : α → Prop},\n  (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))\n        b a →\n      p a) →\n    (@LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b →\n        p b) →\n      p (@Max.max.{u_2} α (@LinearOrder.toMax.{u_2} α inst) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-b36d97e917feb3becd4e73b875a5571da7ec3c16b73c0362663a421d6cc67475","qualified_name":"max_rec'","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α} (p : α → Prop),\n  p a → p b → p (@Max.max.{u_2} α (@LinearOrder.toMax.{u_2} α inst) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-53b33fdab8f83705ce0068195b3c145c833d717c5e8d8a46cb14c422993b66d9","qualified_name":"min_def_lt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] (a b : α),\n  @Eq.{u_2 + 1} α (@Min.min.{u_2} α (@LinearOrder.toMin.{u_2} α inst) a b)\n    (@ite.{u_2 + 1} α\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b)\n      (@LinearOrder.toDecidableLT.{u_2} α inst a b) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-7cd6a2bd8046c686165dc462792d2255ce5025cadf287bcc31acc4f6d468b987","qualified_name":"min_def_lt'","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] (a b : α),\n  @Eq.{u_2 + 1} α (@Min.min.{u_2} α (@LinearOrder.toMin.{u_2} α inst) a b)\n    (@ite.{u_2 + 1} α\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a)\n      (@LinearOrder.toDecidableLT.{u_2} α inst b a) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-7dbda1ec392cc1a1307c428a2bc2b55531d1f97c1a3a3829fe667847a69095b6","qualified_name":"min_rec","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α} {p : α → Prop},\n  (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst)))\n        a b →\n      p a) →\n    (@LE.le.{u_2} α\n          (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a →\n        p b) →\n      p (@Min.min.{u_2} α (@LinearOrder.toMin.{u_2} α inst) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-940901342e7a3075c3931fa15396f883aad46d540034c7fbc2b4998ba62ad3c4","qualified_name":"min_rec'","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α} (p : α → Prop),\n  p a → p b → p (@Min.min.{u_2} α (@LinearOrder.toMin.{u_2} α inst) a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-1c57230c419670d8066401264f0005d8471ff8b33759b2056f20afae26c460eb","qualified_name":"mul_comm_div","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a b)\n      c)\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      a\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        c b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2ca904157091dcddfc2a4cb08ee0d2498ce456b1c01a8a2a5d1c306766c080de","qualified_name":"mul_div","statement":"∀ {G : Type u_3} [inst : DivInvMonoid.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G inst)))))\n      a (@HDiv.hDiv.{u_3, u_3, u_3} G G G (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G inst)) b c))\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G inst))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G inst)))))\n        a b)\n      c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-1f4520d0235f9f9e5cab06563539883db490b09fb6687105f7eea6d7f945ded5","qualified_name":"mul_div_assoc'","statement":"∀ {G : Type u_3} [inst : DivInvMonoid.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G inst)))))\n      a (@HDiv.hDiv.{u_3, u_3, u_3} G G G (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G inst)) b c))\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G inst))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G inst)))))\n        a b)\n      c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5d3e7b47ce463e4be602246aa93b903ea9bf37d046dad454eeb5457d1e401f7e","qualified_name":"mul_div_cancel","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G\n              (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n      a\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        b a))\n    b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-8a44aec1e3585279f4f8c1628e4600c7a12624726ad586fd5ff82cdb04842994","qualified_name":"mul_div_cancel_left","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G\n        (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        a b)\n      a)\n    b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-94b8a82bad834b757ed3082b69d1f48a63ec7f0eed918e770a580394e2c78f08","qualified_name":"mul_div_div_cancel","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G\n        (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        a b)\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        a c))\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G\n              (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n      b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-9e4201a3de3f099ca4f4b03ec96de5010451666173fab8d51a0aae5ce10e1e87","qualified_name":"mul_div_left_comm","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      a\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        b c))\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      b\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-728838fde6ee2294f123733981afc75bf1ab7728ac98e87d8092db87f9714058","qualified_name":"mul_div_mul_comm","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b c d : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α\n                  (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n        a b)\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α\n                  (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n        c d))\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a c)\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        b d))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-577c765a39a90ca3e9823a2bc29d550e1fdfe253e4ab3284a732782f4373c2cf","qualified_name":"mul_div_mul_left_eq_div","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G\n        (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        c a)\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        c b))\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G\n        (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n      a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-259c65e56728b39f8791fe6c16d6601783c759f1c0b8cc87e343c405d150b111","qualified_name":"mul_div_mul_right_eq_div","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a c)\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        b c))\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ebe84f0854a6eda2457b07ba17c5b729f3235ff68fc9806dee90f6abe5aa5136","qualified_name":"mul_div_right_comm","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α\n                  (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n        a b)\n      c)\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-08a9c5b7d9109900c0036c1b521484f0451bc08bde82bbf366a3694b0478e6b2","qualified_name":"mul_eq_left","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M]\n  [@IsLeftCancelMul.{u_4} M\n      (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Eq.{u_4 + 1} M\n      (@HMul.hMul.{u_4, u_4, u_4} M M M\n        (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n        a b)\n      a)\n    (@Eq.{u_4 + 1} M b\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M\n          (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f50d79225078070e3d26fabffd0099724fcdaedbf0d2fc14b7f0f904efb35498","qualified_name":"mul_eq_of_eq_div","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G a\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) c b) →\n    @Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a b)\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-22032a68659381d8e020d226acb7adfdb62d5982057dc3885f54cfbb4ef86a44","qualified_name":"mul_eq_of_eq_div'","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G b\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        c a) →\n    @Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        a b)\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f241263aa95469e4f81f4b849119b44c52be1b40e9d9dbcb205d4b241c903ece","qualified_name":"mul_eq_of_eq_inv_mul","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G b\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          a)\n        c) →\n    @Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a b)\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-1c7ddc7535003923f28ae57a1c9a0db83a1b585a3bdeba492c5cc69bdd6ab80f","qualified_name":"mul_eq_of_eq_mul_inv","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        c\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          b)) →\n    @Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a b)\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a49bd5ea212828702f8b9ae4e8fd55d9f7ca2012dd319df0b168417999cccdfa","qualified_name":"mul_eq_one_iff_eq_inv","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G a\n      (@Inv.inv.{u_3} G\n        (@InvOneClass.toInv.{u_3} G\n          (@DivInvOneMonoid.toInvOneClass.{u_3} G\n            (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n        b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-078816a12e1f322463a08cf8550aa4d70f9effaa0d42288f30afc1766001453b","qualified_name":"mul_eq_one_iff_eq_inv'","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G b\n      (@Inv.inv.{u_3} G\n        (@InvOneClass.toInv.{u_3} G\n          (@DivInvOneMonoid.toInvOneClass.{u_3} G\n            (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n        a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-7cfd1ede58f385ffdaf4a3a74ed2836746a4114165d61054306263926b7e696d","qualified_name":"mul_eq_one_iff_inv_eq","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G\n      (@Inv.inv.{u_3} G\n        (@InvOneClass.toInv.{u_3} G\n          (@DivInvOneMonoid.toInvOneClass.{u_3} G\n            (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n        a)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-79e8c7e1aed1bb86d2a7bb158e2eb9acbad6c6c964c8d223c75cc2339be7f9e4","qualified_name":"mul_eq_one_iff_inv_eq'","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G\n      (@Inv.inv.{u_3} G\n        (@InvOneClass.toInv.{u_3} G\n          (@DivInvOneMonoid.toInvOneClass.{u_3} G\n            (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n        b)\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a390d0338c0da263c311c544b038b44a50009ea299a0d486aa50816f380acc18","qualified_name":"mul_eq_right","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M]\n  [@IsRightCancelMul.{u_4} M\n      (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Eq.{u_4 + 1} M\n      (@HMul.hMul.{u_4, u_4, u_4} M M M\n        (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n        a b)\n      b)\n    (@Eq.{u_4 + 1} M a\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M\n          (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-3f7423ba24308ef4d58b9f24e6f023d65ae382f88e4715dcde5406cea6be4a2f","qualified_name":"mul_inv","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@Inv.inv.{u_1} α\n      (@InvOneClass.toInv.{u_1} α\n        (@DivInvOneMonoid.toInvOneClass.{u_1} α\n          (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α\n                  (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n        a b))\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α\n            (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        a)\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α\n            (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-796c2f88773755f5982de2123eb96d9d9cb0fb2d7594d914503bfb909a2a5b80","qualified_name":"mul_inv_eq_iff_eq_mul","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          b))\n      c)\n    (@Eq.{u_3 + 1} G a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        c b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d3cb0dc220a608696f3fd505d663b9f5030e1e53d2f7cc2aa627394f16b1f9c8","qualified_name":"mul_inv_eq_mul_inv_iff_mul_eq_mul","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] {a b c d : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        a\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G\n                (@DivisionCommMonoid.toDivisionMonoid.{u_3} G (@CommGroup.toDivisionCommMonoid.{u_3} G inst)))))\n          b))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        c\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G\n                (@DivisionCommMonoid.toDivisionMonoid.{u_3} G (@CommGroup.toDivisionCommMonoid.{u_3} G inst)))))\n          d)))\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        a d)\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        c b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-7a2baf9f66936a520f72b4dcf9ba990ae3508346e34f8c0adc9b563664cb678a","qualified_name":"mul_inv_eq_of_eq_mul","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        c b) →\n    @Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          b))\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2f4bf84e77d4913749e6c6d84a8ccb405c10499b4884aedaa5e624dd38b2bc7c","qualified_name":"mul_inv_eq_one","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          b))\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ece505ea6d15ba1042342e1b3697432698d813bba4de269ccbe56be8eedec6c4","qualified_name":"mul_inv_mul_mul_cancel","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          b))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        b c))\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      a c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a1edb37b681d56e0858bc1767671a04e358a545cb130035dfbdaa9e0f6714fcf","qualified_name":"mul_left_comm","statement":"∀ {G : Type u_3} [inst : CommSemigroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) b c))\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) b\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) a c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e4985fdbd7278ee6d1262d8d0837172adf2bd3434ad2ba15ab284db2c01a9019","qualified_name":"mul_left_iterate","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] (a : M) (n : Nat),\n  @Eq.{u_4 + 1} (M → M)\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HMul.hMul.{u_4, u_4, u_4} M M M\n          (@instHMul.{u_4} M\n            (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n          a x)\n      n)\n    fun x =>\n    @HMul.hMul.{u_4, u_4, u_4} M M M\n      (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n      (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n        n)\n      x"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-04b51e617266f5aa253d54473d3d5528d68f05ec6b0125cee4da8e2db77583a1","qualified_name":"mul_left_iterate_apply","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] {n : Nat} (a b : M),\n  @Eq.{u_4 + 1} M\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HMul.hMul.{u_4, u_4, u_4} M M M\n          (@instHMul.{u_4} M\n            (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n          a x)\n      n b)\n    (@HMul.hMul.{u_4, u_4, u_4} M M M\n      (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n      (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n        n)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d6f1a62cd605e10fae397ae51b10f24d7bb9c4cdec5fabb562702a326ea15c60","qualified_name":"mul_left_iterate_apply_one","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] {n : Nat} (a : M),\n  @Eq.{u_4 + 1} M\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HMul.hMul.{u_4, u_4, u_4} M M M\n          (@instHMul.{u_4} M\n            (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n          a x)\n      n\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M\n          (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))))\n    (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n      n)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-487f735da153ffa2b234d953cef45b20019ab9be6b6559d0b967534265a9844e","qualified_name":"mul_left_iterate_apply_self","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] (a : M) (n : Nat),\n  @Eq.{u_4 + 1} M\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HMul.hMul.{u_4, u_4, u_4} M M M\n          (@instHMul.{u_4} M\n            (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n          a x)\n      n a)\n    (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) n\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-645dabeafd6d1ec5fb900bcb4a1383525b712096822ece3f19ec856e764715ad","qualified_name":"mul_left_surjective","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a : G),\n  @Function.Surjective.{u_3 + 1, u_3 + 1} G G fun x =>\n    @HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      a x"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-1afb412ca6066bc9fdfcff3242b02a442a7c6fa4b9284fc869e9496b7d669cf6","qualified_name":"mul_mul_div_cancel","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G\n              (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        a c)\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n        (@instHDiv.{u_3} G\n          (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst))))\n        b c))\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G\n              (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n      a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-474e9ec9238a401e85e94a205b2dfa26bc39dd422cb6910760804fc156f75344","qualified_name":"mul_mul_inv_cancel'_right","statement":"∀ {G : Type u_3} [inst : CommGroup.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G\n              (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n      a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G\n                (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G (@CommGroup.toGroup.{u_3} G inst)))))))\n        b\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G\n                (@DivisionCommMonoid.toDivisionMonoid.{u_3} G (@CommGroup.toDivisionCommMonoid.{u_3} G inst)))))\n          a)))\n    b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-0e3db718c20279ea2c52627d5b8240910b55ab571f1260eb35b7ec89f98bc9cf","qualified_name":"mul_mul_inv_mul_cancel","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        a b)\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          b)\n        c))\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      a c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ad249d73ea742e99c0d2b7ec1482efca045258c585c9a8458243867fb45b8768","qualified_name":"mul_mul_mul_comm","statement":"∀ {G : Type u_3} [inst : CommSemigroup.{u_3} G] (a b c d : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst)))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) a b)\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) c d))\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst)))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) a c)\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) b d))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-90da324263d61c1b8aadaa06c0826e38d5dcec2492b5f8364cdcb1fac85c3970","qualified_name":"mul_mul_mul_comm'","statement":"∀ {G : Type u_3} [inst : CommSemigroup.{u_3} G] (a b c d : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst)))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst)))\n        (@HMul.hMul.{u_3, u_3, u_3} G G G\n          (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) a b)\n        c)\n      d)\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst)))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst)))\n        (@HMul.hMul.{u_3, u_3, u_3} G G G\n          (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) a c)\n        b)\n      d)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-521056982127b12c3d542b613e742da1e2b389b9b77665ac9071a61460790f19","qualified_name":"mul_ne_left","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M]\n  [@IsLeftCancelMul.{u_4} M\n      (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Ne.{u_4 + 1} M\n      (@HMul.hMul.{u_4, u_4, u_4} M M M\n        (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n        a b)\n      a)\n    (@Ne.{u_4 + 1} M b\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M\n          (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a1cfbc97b60a8d5259c64af4d9cb5db96ffe36b9694b44100893f33a59c3beb5","qualified_name":"mul_ne_right","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M]\n  [@IsRightCancelMul.{u_4} M\n      (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Ne.{u_4 + 1} M\n      (@HMul.hMul.{u_4, u_4, u_4} M M M\n        (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n        a b)\n      b)\n    (@Ne.{u_4 + 1} M a\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M\n          (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2f4d682f9637f9a99425144f3dd49eed0962a5b092c6b5c0d841944ae08042cb","qualified_name":"mul_one_div","statement":"∀ {G : Type u_3} [inst : DivInvMonoid.{u_3} G] (x y : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G inst)))))\n      x\n      (@HDiv.hDiv.{u_3, u_3, u_3} G G G (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G inst))\n        (@OfNat.ofNat.{u_3} G (nat_lit 1)\n          (@One.toOfNat1.{u_3} G\n            (@MulOne.toOne.{u_3} G\n              (@MulOneClass.toMulOne.{u_3} G (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G inst))))))\n        y))\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G inst)) x y)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d623e72e4bb222519674120138ffd981e728b5812193dc359afa607ecf11810b","qualified_name":"mul_one_eq_id","statement":"∀ {M : Type u_4} [inst : MulOneClass.{u_4} M],\n  @Eq.{u_4 + 1} (M → M)\n    (fun x =>\n      @HMul.hMul.{u_4, u_4, u_4} M M M (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst)))\n        x\n        (@OfNat.ofNat.{u_4} M (nat_lit 1)\n          (@One.toOfNat1.{u_4} M (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst)))))\n    (@id.{u_4 + 1} M)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-58c35a50817a23f8158fae29c4abb15c7e3a8175f3ea922913eaa743a8ed3881","qualified_name":"mul_pow","statement":"∀ {M : Type u_4} [inst : CommMonoid.{u_4} M] (a b : M) (n : Nat),\n  @Eq.{u_4 + 1} M\n    (@HPow.hPow.{u_4, 0, u_4} M Nat M\n      (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M (@CommMonoid.toMonoid.{u_4} M inst))))\n      (@HMul.hMul.{u_4, u_4, u_4} M M M\n        (@instHMul.{u_4} M\n          (@MulOne.toMul.{u_4} M\n            (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M (@CommMonoid.toMonoid.{u_4} M inst)))))\n        a b)\n      n)\n    (@HMul.hMul.{u_4, u_4, u_4} M M M\n      (@instHMul.{u_4} M\n        (@MulOne.toMul.{u_4} M\n          (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M (@CommMonoid.toMonoid.{u_4} M inst)))))\n      (@HPow.hPow.{u_4, 0, u_4} M Nat M\n        (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M (@CommMonoid.toMonoid.{u_4} M inst)))) a\n        n)\n      (@HPow.hPow.{u_4, 0, u_4} M Nat M\n        (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M (@CommMonoid.toMonoid.{u_4} M inst)))) b\n        n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-71018af9a4d75e8e2b8e29af26e476dd816dfb7e11cb605946deca37cea98170","qualified_name":"mul_pow_sub_one","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] {n : Nat},\n  @Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    ∀ (a : M),\n      @Eq.{u_4 + 1} M\n        (@HMul.hMul.{u_4, u_4, u_4} M M M\n          (@instHMul.{u_4} M\n            (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n          a\n          (@HPow.hPow.{u_4, 0, u_4} M Nat M\n            (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n            (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) n\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))))\n        (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst)))\n          a n)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-0ff5fbd5e8801b978d063538e54559e555c9027b7693208e3099b36008d2069a","qualified_name":"mul_right_comm","statement":"∀ {G : Type u_3} [inst : CommSemigroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst)))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) a b)\n      c)\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst)))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-12c794ff8272a21554628b03196e40edd08f3fde6aa226aa8f9d5242976041fc","qualified_name":"mul_right_iterate","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] (a : M) (n : Nat),\n  @Eq.{u_4 + 1} (M → M)\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HMul.hMul.{u_4, u_4, u_4} M M M\n          (@instHMul.{u_4} M\n            (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n          x a)\n      n)\n    fun x =>\n    @HMul.hMul.{u_4, u_4, u_4} M M M\n      (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst)))) x\n      (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n        n)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c7ad20c68ec0777847d998de105cb6be1bedf019f66e71c630300dd20da0a787","qualified_name":"mul_right_iterate_apply","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] {n : Nat} (a b : M),\n  @Eq.{u_4 + 1} M\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HMul.hMul.{u_4, u_4, u_4} M M M\n          (@instHMul.{u_4} M\n            (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n          x a)\n      n b)\n    (@HMul.hMul.{u_4, u_4, u_4} M M M\n      (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst)))) b\n      (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n        n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-35eb1b6afdfb3fbb0539f8c27b18256533f1d0d7ce075974cab8c360ef465fee","qualified_name":"mul_right_iterate_apply_one","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] {n : Nat} (a : M),\n  @Eq.{u_4 + 1} M\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HMul.hMul.{u_4, u_4, u_4} M M M\n          (@instHMul.{u_4} M\n            (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n          x a)\n      n\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M\n          (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))))\n    (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n      n)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d0f4e84779448da1c3f66383b75a3fabe3f4f338eb9888362295ca02f6de05af","qualified_name":"mul_right_iterate_apply_self","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] (a : M) (n : Nat),\n  @Eq.{u_4 + 1} M\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HMul.hMul.{u_4, u_4, u_4} M M M\n          (@instHMul.{u_4} M\n            (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n          x a)\n      n a)\n    (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n      (@HAdd.hAdd.{0, 0, 0} Nat Nat Nat (@instHAdd.{0} Nat instAddNat) n\n        (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-601fc02be086463ece20c8c1a2a00dfd7995465649e7e3ab8d1777bd45eacc69","qualified_name":"mul_right_surjective","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a : G),\n  @Function.Surjective.{u_3 + 1, u_3 + 1} G G fun x =>\n    @HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      x a"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-3bb5f1391cd559dfe659a5d396380cea975ff4a1aa1a9001f1bba26b30cb8863","qualified_name":"mul_rotate","statement":"∀ {G : Type u_3} [inst : CommSemigroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst)))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) a b)\n      c)\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst)))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) b c)\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-616394f54d5ca8fd9724b1b84faf12123616be04d782af5f71b059554b02a5a4","qualified_name":"mul_rotate'","statement":"∀ {G : Type u_3} [inst : CommSemigroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) a\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) b c))\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) b\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G (@CommMagma.toMul.{u_3} G (@CommSemigroup.toCommMagma.{u_3} G inst))) c a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-529b565b2d961fd7778bd485e1749ff82c7c04ce7df55b782d1cb30429f17199","qualified_name":"mul_self_zpow","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a : G) (n : Int),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      a\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        a n))\n    (@HPow.hPow.{u_3, 0, u_3} G Int G\n      (@instHPow.{u_3, 0} G Int\n        (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n      a\n      (@HAdd.hAdd.{0, 0, 0} Int Int Int (@instHAdd.{0} Int Int.instAdd) n\n        (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1)))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-0cebdbae0be2a624127c59827831846e6d9494d3bc318d19def73a6b9514983b","qualified_name":"mul_zpow","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b : α) (n : Int),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, 0, u_1} α Int α\n      (@instHPow.{u_1, 0} α Int\n        (@ZPow.toPow.{u_1} α\n          (@DivInvMonoid.toZPow.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α\n                  (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n        a b)\n      n)\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      (@HPow.hPow.{u_1, 0, u_1} α Int α\n        (@instHPow.{u_1, 0} α Int\n          (@ZPow.toPow.{u_1} α\n            (@DivInvMonoid.toZPow.{u_1} α\n              (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))\n        a n)\n      (@HPow.hPow.{u_1, 0, u_1} α Int α\n        (@instHPow.{u_1, 0} α Int\n          (@ZPow.toPow.{u_1} α\n            (@DivInvMonoid.toZPow.{u_1} α\n              (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))\n        b n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-cc3d6fbed973ad846a04a3ecbb3630a44e082ccd86498c720eb14fc536020b81","qualified_name":"mul_zpow_mul","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a b : G) (n : Int),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        (@HMul.hMul.{u_3, u_3, u_3} G G G\n          (@instHMul.{u_3} G\n            (@MulOne.toMul.{u_3} G\n              (@MulOneClass.toMulOne.{u_3} G\n                (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n          a b)\n        n)\n      a)\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      a\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        (@HMul.hMul.{u_3, u_3, u_3} G G G\n          (@instHMul.{u_3} G\n            (@MulOne.toMul.{u_3} G\n              (@MulOneClass.toMulOne.{u_3} G\n                (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n          b a)\n        n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5787949fabb5df9f3362d4a2bbea5306ad13625c0ad98168a4f79d70cb7ba993","qualified_name":"mul_zpow_neg_one","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, 0, u_1} α Int α\n      (@instHPow.{u_1, 0} α Int\n        (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))\n        a b)\n      (@Neg.neg.{0} Int Int.instNegInt (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1)))))\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))\n      (@HPow.hPow.{u_1, 0, u_1} α Int α\n        (@instHPow.{u_1, 0} α Int\n          (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n        b (@Neg.neg.{0} Int Int.instNegInt (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1)))))\n      (@HPow.hPow.{u_1, 0, u_1} α Int α\n        (@instHPow.{u_1, 0} α Int\n          (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n        a (@Neg.neg.{0} Int Int.instNegInt (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-46466507375baf202037f0ca3fcfdc3d9d55fc5b65b446d28f7f8229a4436338","qualified_name":"mul_zpow_self","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a : G) (n : Int),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        a n)\n      a)\n    (@HPow.hPow.{u_3, 0, u_3} G Int G\n      (@instHPow.{u_3, 0} G Int\n        (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n      a\n      (@HAdd.hAdd.{0, 0, 0} Int Int Int (@instHAdd.{0} Int Int.instAdd) n\n        (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1)))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-dec813579db0be723e03ace45f9e7146c02c84a20074eff779b7f259ea2942fd","qualified_name":"mul_zsmul","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a : α) (m n : Int),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{0, u_1, u_1} Int α α\n      (@instHSMul.{0, u_1} Int α\n        (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n      (@HMul.hMul.{0, 0, 0} Int Int Int (@instHMul.{0} Int Int.instMul) m n) a)\n    (@HSMul.hSMul.{0, u_1, u_1} Int α α\n      (@instHSMul.{0, u_1} Int α\n        (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n      m\n      (@HSMul.hSMul.{0, u_1, u_1} Int α α\n        (@instHSMul.{0, u_1} Int α\n          (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n        n a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c530ffd4839cfcd3aeeb9489af2c818c98d54daa2f54d124f3a1605aa42a73c6","qualified_name":"mul_zsmul'","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a : α) (m n : Int),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{0, u_1, u_1} Int α α\n      (@instHSMul.{0, u_1} Int α\n        (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n      (@HMul.hMul.{0, 0, 0} Int Int Int (@instHMul.{0} Int Int.instMul) m n) a)\n    (@HSMul.hSMul.{0, u_1, u_1} Int α α\n      (@instHSMul.{0, u_1} Int α\n        (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n      n\n      (@HSMul.hSMul.{0, u_1, u_1} Int α α\n        (@instHSMul.{0, u_1} Int α\n          (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n        m a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-07c2200ab1dd40a95c2b6bcd26531afb54dd65cd2c75aa9d8badbd1988c608ce","qualified_name":"multiplicative_of_symm_of_total","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : Monoid.{u_2} β] (p r : α → α → Prop) [@Std.Total.{u_1 + 1} α r] (f : α → α → β)\n  [@Std.Symm.{u_1 + 1} α p],\n  (∀ {a b : α},\n      p a b →\n        @Eq.{u_2 + 1} β\n          (@HMul.hMul.{u_2, u_2, u_2} β β β\n            (@instHMul.{u_2} β\n              (@MulOne.toMul.{u_2} β (@MulOneClass.toMulOne.{u_2} β (@Monoid.toMulOneClass.{u_2} β inst))))\n            (f a b) (f b a))\n          (@OfNat.ofNat.{u_2} β (nat_lit 1)\n            (@One.toOfNat1.{u_2} β\n              (@MulOne.toOne.{u_2} β (@MulOneClass.toMulOne.{u_2} β (@Monoid.toMulOneClass.{u_2} β inst)))))) →\n    (∀ {a b c : α},\n        r a b →\n          r b c →\n            p a b →\n              p b c →\n                p a c →\n                  @Eq.{u_2 + 1} β (f a c)\n                    (@HMul.hMul.{u_2, u_2, u_2} β β β\n                      (@instHMul.{u_2} β\n                        (@MulOne.toMul.{u_2} β (@MulOneClass.toMulOne.{u_2} β (@Monoid.toMulOneClass.{u_2} β inst))))\n                      (f a b) (f b c))) →\n      ∀ {a b c : α},\n        p a b →\n          p b c →\n            p a c →\n              @Eq.{u_2 + 1} β (f a c)\n                (@HMul.hMul.{u_2, u_2, u_2} β β β\n                  (@instHMul.{u_2} β\n                    (@MulOne.toMul.{u_2} β (@MulOneClass.toMulOne.{u_2} β (@Monoid.toMulOneClass.{u_2} β inst))))\n                  (f a b) (f b c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-14423032a51f96f089cf464e800fc3fc468098fe0377771b05126c1cd0c24e3f","qualified_name":"multiplicative_of_symmetric_of_total","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : Monoid.{u_2} β] (p r : α → α → Prop) [@Std.Total.{u_1 + 1} α r] (f : α → α → β)\n  [@Std.Symm.{u_1 + 1} α p],\n  (∀ {a b : α},\n      p a b →\n        @Eq.{u_2 + 1} β\n          (@HMul.hMul.{u_2, u_2, u_2} β β β\n            (@instHMul.{u_2} β\n              (@MulOne.toMul.{u_2} β (@MulOneClass.toMulOne.{u_2} β (@Monoid.toMulOneClass.{u_2} β inst))))\n            (f a b) (f b a))\n          (@OfNat.ofNat.{u_2} β (nat_lit 1)\n            (@One.toOfNat1.{u_2} β\n              (@MulOne.toOne.{u_2} β (@MulOneClass.toMulOne.{u_2} β (@Monoid.toMulOneClass.{u_2} β inst)))))) →\n    (∀ {a b c : α},\n        r a b →\n          r b c →\n            p a b →\n              p b c →\n                p a c →\n                  @Eq.{u_2 + 1} β (f a c)\n                    (@HMul.hMul.{u_2, u_2, u_2} β β β\n                      (@instHMul.{u_2} β\n                        (@MulOne.toMul.{u_2} β (@MulOneClass.toMulOne.{u_2} β (@Monoid.toMulOneClass.{u_2} β inst))))\n                      (f a b) (f b c))) →\n      ∀ {a b c : α},\n        p a b →\n          p b c →\n            p a c →\n              @Eq.{u_2 + 1} β (f a c)\n                (@HMul.hMul.{u_2, u_2, u_2} β β β\n                  (@instHMul.{u_2} β\n                    (@MulOne.toMul.{u_2} β (@MulOneClass.toMulOne.{u_2} β (@Monoid.toMulOneClass.{u_2} β inst))))\n                  (f a b) (f b c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c8761d2aa555bf8fcd02c72f9838899061209548df4f9cd39cd071eebf310892","qualified_name":"multiplicative_of_total","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : Monoid.{u_2} β] (r : α → α → Prop) [@Std.Total.{u_1 + 1} α r] (f : α → α → β)\n  (p : α → Prop),\n  (∀ {a b : α},\n      p a →\n        p b →\n          @Eq.{u_2 + 1} β\n            (@HMul.hMul.{u_2, u_2, u_2} β β β\n              (@instHMul.{u_2} β\n                (@MulOne.toMul.{u_2} β (@MulOneClass.toMulOne.{u_2} β (@Monoid.toMulOneClass.{u_2} β inst))))\n              (f a b) (f b a))\n            (@OfNat.ofNat.{u_2} β (nat_lit 1)\n              (@One.toOfNat1.{u_2} β\n                (@MulOne.toOne.{u_2} β (@MulOneClass.toMulOne.{u_2} β (@Monoid.toMulOneClass.{u_2} β inst)))))) →\n    (∀ {a b c : α},\n        r a b →\n          r b c →\n            p a →\n              p b →\n                p c →\n                  @Eq.{u_2 + 1} β (f a c)\n                    (@HMul.hMul.{u_2, u_2, u_2} β β β\n                      (@instHMul.{u_2} β\n                        (@MulOne.toMul.{u_2} β (@MulOneClass.toMulOne.{u_2} β (@Monoid.toMulOneClass.{u_2} β inst))))\n                      (f a b) (f b c))) →\n      ∀ {a b c : α},\n        p a →\n          p b →\n            p c →\n              @Eq.{u_2 + 1} β (f a c)\n                (@HMul.hMul.{u_2, u_2, u_2} β β β\n                  (@instHMul.{u_2} β\n                    (@MulOne.toMul.{u_2} β (@MulOneClass.toMulOne.{u_2} β (@Monoid.toMulOneClass.{u_2} β inst))))\n                  (f a b) (f b c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-802f1655f4a195e304387ef9aa75cd56d39e0138946607865ccd98ff9bda9680","qualified_name":"natAbs_nsmul_eq_zero","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a : G} {n : Int},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HSMul.hSMul.{0, u_3, u_3} Nat G G\n        (@instHSMul.{0, u_3} Nat G\n          (@NSMul.toSMul.{u_3} G\n            (@AddMonoid.toNSMul.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst)))))\n        n.natAbs a)\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G\n      (@HSMul.hSMul.{0, u_3, u_3} Int G G\n        (@instHSMul.{0, u_3} Int G\n          (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n        n a)\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5ae080254ab69bafb9bcf9568df7a2b470e72952138fd3f16a4e4dd455fe95fe","qualified_name":"natCast_sub_natCast_zsmul","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a : G) (m n : Nat),\n  @Eq.{u_3 + 1} G\n    (@HSMul.hSMul.{0, u_3, u_3} Int G G\n      (@instHSMul.{0, u_3} Int G\n        (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n      (@HSub.hSub.{0, 0, 0} Int Int Int (@instHSub.{0} Int Int.instSub) (@Nat.cast.{0} Int instNatCastInt m)\n        (@Nat.cast.{0} Int instNatCastInt n))\n      a)\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst)))\n      (@HSMul.hSMul.{0, u_3, u_3} Nat G G\n        (@instHSMul.{0, u_3} Nat G\n          (@NSMul.toSMul.{u_3} G\n            (@AddMonoid.toNSMul.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst)))))\n        m a)\n      (@HSMul.hSMul.{0, u_3, u_3} Nat G G\n        (@instHSMul.{0, u_3} Nat G\n          (@NSMul.toSMul.{u_3} G\n            (@AddMonoid.toNSMul.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst)))))\n        n a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-fa37f8156cca02e9fd54573f005d5b0399ce6bc60e512215c42b1755e32b32e1","qualified_name":"natCast_sub_one_zsmul","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a : G) (n : Nat),\n  @Eq.{u_3 + 1} G\n    (@HSMul.hSMul.{0, u_3, u_3} Int G G\n      (@instHSMul.{0, u_3} Int G\n        (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n      (@HSub.hSub.{0, 0, 0} Int Int Int (@instHSub.{0} Int Int.instSub) (@Nat.cast.{0} Int instNatCastInt n)\n        (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1))))\n      a)\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst)))\n      (@HSMul.hSMul.{0, u_3, u_3} Nat G G\n        (@instHSMul.{0, u_3} Nat G\n          (@NSMul.toSMul.{u_3} G\n            (@AddMonoid.toNSMul.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst)))))\n        n a)\n      a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-d8f6e8056ca48638195e5cf18dface4c7e56c28a057421826b52f8ec9ce5eea6","qualified_name":"ne_iff_gt_iff_ge","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  Iff (Iff (@Ne.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a))\n    (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-624272130a87f4d54477e8b930648e42ff3c0d0e5e3e89b590bbe7f75153ca33","qualified_name":"ne_iff_lt_iff_le","statement":"∀ {α : Type u_2} [inst : PartialOrder.{u_2} α] {a b : α},\n  Iff (Iff (@Ne.{u_2 + 1} α a b) (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b))\n    (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α (@PartialOrder.toPreorder.{u_2} α inst)) a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ca6dddf1b38b07e52133b226fcd93d1108b03cd433d8bb28cc2d491b3fd2b775","qualified_name":"ne_iff_ne_of_add_eq_add","statement":"∀ {α : Type u_1} [inst : AddCancelCommMonoid.{u_1} α] {a b c d : α},\n  @Eq.{u_1 + 1} α\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@AddCommMonoid.toAddMonoid.{u_1} α (@AddCancelCommMonoid.toAddCommMonoid.{u_1} α inst))))))\n        a b)\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@AddCommMonoid.toAddMonoid.{u_1} α (@AddCancelCommMonoid.toAddCommMonoid.{u_1} α inst))))))\n        c d) →\n    Iff (@Ne.{u_1 + 1} α a c) (@Ne.{u_1 + 1} α b d)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a40cbc6f354a9ac12467c9ada6e824c35d728e082fa67c22da70f2a337568dc3","qualified_name":"ne_iff_ne_of_mul_eq_mul","statement":"∀ {α : Type u_1} [inst : CancelCommMonoid.{u_1} α] {a b c d : α},\n  @Eq.{u_1 + 1} α\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@CommMonoid.toMonoid.{u_1} α (@CancelCommMonoid.toCommMonoid.{u_1} α inst))))))\n        a b)\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@CommMonoid.toMonoid.{u_1} α (@CancelCommMonoid.toCommMonoid.{u_1} α inst))))))\n        c d) →\n    Iff (@Ne.{u_1 + 1} α a c) (@Ne.{u_1 + 1} α b d)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-2b8355a61a4a753ca3c6a0dabe764c6a76ca40b0f3e195942ad14ac3db074d6a","qualified_name":"ne_of_not_ge","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b : α},\n  Not (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) b a) → @Ne.{u_2 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-a309bf6ec6031ac7034b4c1d68d0fa2c434408fa817592c6e55cbe0f1a4e1958","qualified_name":"ne_of_not_le","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b : α},\n  Not (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a b) → @Ne.{u_2 + 1} α a b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-36b6e5d484789669996a5c2b8f6ea91484c2c63e2344500351a6f2e7224f6f21","qualified_name":"neg_add","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@Neg.neg.{u_1} α\n      (@NegZeroClass.toNeg.{u_1} α\n        (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n          (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α\n                  (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n        a b))\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a)\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-58c1ca0381810d4c9075dac0fcbbdd6cf5382ea8e72e4ecf2a94875b8cd4f44f","qualified_name":"neg_add'","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@Neg.neg.{u_1} α\n      (@NegZeroClass.toNeg.{u_1} α\n        (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n          (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α\n                  (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n        a b))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-6ceac455d2d93a038f84d9e1d7e01838a6b6b87149e996c7801a56bcb5f885eb","qualified_name":"neg_add_eq_iff_eq_add","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          a)\n        b)\n      c)\n    (@Eq.{u_3 + 1} G b\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-59dd30f717e9f62f92cebfa8241f74cdd9758a0887db8c5949982ffa691766ce","qualified_name":"neg_add_eq_neg_add_iff_add_eq_add","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] {a b c d : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G\n                (@SubtractionCommMonoid.toSubtractionMonoid.{u_3} G\n                  (@AddCommGroup.toDivisionAddCommMonoid.{u_3} G inst)))))\n          b)\n        a)\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G\n                (@SubtractionCommMonoid.toSubtractionMonoid.{u_3} G\n                  (@AddCommGroup.toDivisionAddCommMonoid.{u_3} G inst)))))\n          d)\n        c))\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        a d)\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        c b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b80ef32d84ddba126d77010c904abac7237115489dd9362ae0d435bc45344351","qualified_name":"neg_add_eq_of_eq_add","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G b\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a c) →\n    @Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          a)\n        b)\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-8b2e345b8ca4b532f8f87915304b24e7ab8c5703040ba813f88006b378ff9944","qualified_name":"neg_add_eq_sub","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a)\n      b)\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      b a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b1434410ba400dde774f3ddda979b635e62a9c1c820eb9d223c5dd847428d303","qualified_name":"neg_add_eq_zero","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          a)\n        b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-0782efd2e6e54c7098b55d8e739f0d0a6cf1fdc51eedab471c624cde0d4cb3fc","qualified_name":"neg_bijective","statement":"∀ {G : Type u_3} [inst : InvolutiveNeg.{u_3} G],\n  @Function.Bijective.{u_3 + 1, u_3 + 1} G G (@Neg.neg.{u_3} G (@InvolutiveNeg.toNeg.{u_3} G inst))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-fe2173b5fddc94cc3af96fd6e2f98a45fd0efab9fc3a973b3b55cd0151b80fef","qualified_name":"neg_comp_neg","statement":"∀ (G : Type u_3) [inst : InvolutiveNeg.{u_3} G],\n  @Eq.{u_3 + 1} (G → G)\n    (@Function.comp.{u_3 + 1, u_3 + 1, u_3 + 1} G G G (@Neg.neg.{u_3} G (@InvolutiveNeg.toNeg.{u_3} G inst))\n      (@Neg.neg.{u_3} G (@InvolutiveNeg.toNeg.{u_3} G inst)))\n    (@id.{u_3 + 1} G)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-3148ba5061a7bd1d83db23097fcf83bc157e45bf9320b33fdd4fde13467f9f33","qualified_name":"neg_div","statement":"∀ {R : Type u_1} [inst : DivisionMonoid.{u_1} R]\n  [inst_1 :\n    @HasDistribNeg.{u_1} R\n      (@MulOne.toMul.{u_1} R\n        (@MulOneClass.toMulOne.{u_1} R\n          (@Monoid.toMulOneClass.{u_1} R\n            (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))]\n  (a b : R),\n  @Eq.{u_1 + 1} R\n    (@HDiv.hDiv.{u_1, u_1, u_1} R R R\n      (@instHDiv.{u_1} R (@DivInvMonoid.toDiv.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))\n      (@Neg.neg.{u_1} R\n        (@InvolutiveNeg.toNeg.{u_1} R\n          (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n            (@MulOne.toMul.{u_1} R\n              (@MulOneClass.toMulOne.{u_1} R\n                (@Monoid.toMulOneClass.{u_1} R\n                  (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n            inst_1))\n        b)\n      a)\n    (@Neg.neg.{u_1} R\n      (@InvolutiveNeg.toNeg.{u_1} R\n        (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n          (@MulOne.toMul.{u_1} R\n            (@MulOneClass.toMulOne.{u_1} R\n              (@Monoid.toMulOneClass.{u_1} R\n                (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n          inst_1))\n      (@HDiv.hDiv.{u_1, u_1, u_1} R R R\n        (@instHDiv.{u_1} R (@DivInvMonoid.toDiv.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst))) b a))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-8730d264a3ab5f20bf81ab93fb0355004f68cb954cd2591ece235fb2cdf7b4a8","qualified_name":"neg_div'","statement":"∀ {R : Type u_1} [inst : DivisionMonoid.{u_1} R]\n  [inst_1 :\n    @HasDistribNeg.{u_1} R\n      (@MulOne.toMul.{u_1} R\n        (@MulOneClass.toMulOne.{u_1} R\n          (@Monoid.toMulOneClass.{u_1} R\n            (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))]\n  (a b : R),\n  @Eq.{u_1 + 1} R\n    (@Neg.neg.{u_1} R\n      (@InvolutiveNeg.toNeg.{u_1} R\n        (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n          (@MulOne.toMul.{u_1} R\n            (@MulOneClass.toMulOne.{u_1} R\n              (@Monoid.toMulOneClass.{u_1} R\n                (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n          inst_1))\n      (@HDiv.hDiv.{u_1, u_1, u_1} R R R\n        (@instHDiv.{u_1} R (@DivInvMonoid.toDiv.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst))) b a))\n    (@HDiv.hDiv.{u_1, u_1, u_1} R R R\n      (@instHDiv.{u_1} R (@DivInvMonoid.toDiv.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))\n      (@Neg.neg.{u_1} R\n        (@InvolutiveNeg.toNeg.{u_1} R\n          (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n            (@MulOne.toMul.{u_1} R\n              (@MulOneClass.toMulOne.{u_1} R\n                (@Monoid.toMulOneClass.{u_1} R\n                  (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n            inst_1))\n        b)\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-192d58bd90942f53668ffd430fd5acfa654358c759896a1c30a7080978f137ea","qualified_name":"neg_div_neg_eq","statement":"∀ {R : Type u_1} [inst : DivisionMonoid.{u_1} R]\n  [inst_1 :\n    @HasDistribNeg.{u_1} R\n      (@MulOne.toMul.{u_1} R\n        (@MulOneClass.toMulOne.{u_1} R\n          (@Monoid.toMulOneClass.{u_1} R\n            (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))]\n  (a b : R),\n  @Eq.{u_1 + 1} R\n    (@HDiv.hDiv.{u_1, u_1, u_1} R R R\n      (@instHDiv.{u_1} R (@DivInvMonoid.toDiv.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))\n      (@Neg.neg.{u_1} R\n        (@InvolutiveNeg.toNeg.{u_1} R\n          (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n            (@MulOne.toMul.{u_1} R\n              (@MulOneClass.toMulOne.{u_1} R\n                (@Monoid.toMulOneClass.{u_1} R\n                  (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n            inst_1))\n        a)\n      (@Neg.neg.{u_1} R\n        (@InvolutiveNeg.toNeg.{u_1} R\n          (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n            (@MulOne.toMul.{u_1} R\n              (@MulOneClass.toMulOne.{u_1} R\n                (@Monoid.toMulOneClass.{u_1} R\n                  (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n            inst_1))\n        b))\n    (@HDiv.hDiv.{u_1, u_1, u_1} R R R\n      (@instHDiv.{u_1} R (@DivInvMonoid.toDiv.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst))) a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-95b5edd5bb7765018166094498b904503684bd92f903d11049415c0d43b9996e","qualified_name":"neg_eq_iff_add_eq_zero","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@Neg.neg.{u_3} G\n        (@NegZeroClass.toNeg.{u_3} G\n          (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n        a)\n      b)\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d44474022443b3d6b9f57e519f29b9a2ec353a555a017d69c26cdc35dbd705a0","qualified_name":"neg_eq_iff_eq_neg","statement":"∀ {G : Type u_3} [inst : InvolutiveNeg.{u_3} G] {a b : G},\n  Iff (@Eq.{u_3 + 1} G (@Neg.neg.{u_3} G (@InvolutiveNeg.toNeg.{u_3} G inst) a) b)\n    (@Eq.{u_3 + 1} G a (@Neg.neg.{u_3} G (@InvolutiveNeg.toNeg.{u_3} G inst) b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f1f40fde8def21e29987d235cdadeaaa07e53ffe852bbabc2d85432c4aa32bc2","qualified_name":"neg_eq_zero","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] {a : α},\n  Iff\n    (@Eq.{u_1 + 1} α\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))\n        a)\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@NegZeroClass.toZero.{u_1} α\n            (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst))))))\n    (@Eq.{u_1 + 1} α a\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@NegZeroClass.toZero.{u_1} α\n            (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-505f2254c28890525428ec6f3ad1dc79c551cbd4a963230edd2a990f1870dab9","qualified_name":"neg_inj","statement":"∀ {G : Type u_3} [inst : InvolutiveNeg.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G (@Neg.neg.{u_3} G (@InvolutiveNeg.toNeg.{u_3} G inst) a)\n      (@Neg.neg.{u_3} G (@InvolutiveNeg.toNeg.{u_3} G inst) b))\n    (@Eq.{u_3 + 1} G a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-0a6b3b82cbc8ee8e75bec2ab5e97303d134a7c348bbaa454eea8c0c3a801ceca","qualified_name":"neg_injective","statement":"∀ {G : Type u_3} [inst : InvolutiveNeg.{u_3} G],\n  @Function.Injective.{u_3 + 1, u_3 + 1} G G (@Neg.neg.{u_3} G (@InvolutiveNeg.toNeg.{u_3} G inst))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-c0319930decc78f443dd358e07e78da43eabd79a941082b3f20597b0d2753c3e","qualified_name":"neg_inv","statement":"∀ {R : Type u_1} [inst : DivisionMonoid.{u_1} R]\n  [inst_1 :\n    @HasDistribNeg.{u_1} R\n      (@MulOne.toMul.{u_1} R\n        (@MulOneClass.toMulOne.{u_1} R\n          (@Monoid.toMulOneClass.{u_1} R\n            (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))]\n  {a : R},\n  @Eq.{u_1 + 1} R\n    (@Neg.neg.{u_1} R\n      (@InvolutiveNeg.toNeg.{u_1} R\n        (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n          (@MulOne.toMul.{u_1} R\n            (@MulOneClass.toMulOne.{u_1} R\n              (@Monoid.toMulOneClass.{u_1} R\n                (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n          inst_1))\n      (@Inv.inv.{u_1} R\n        (@InvOneClass.toInv.{u_1} R\n          (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))\n        a))\n    (@Inv.inv.{u_1} R\n      (@InvOneClass.toInv.{u_1} R\n        (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))\n      (@Neg.neg.{u_1} R\n        (@InvolutiveNeg.toNeg.{u_1} R\n          (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n            (@MulOne.toMul.{u_1} R\n              (@MulOneClass.toMulOne.{u_1} R\n                (@Monoid.toMulOneClass.{u_1} R\n                  (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n            inst_1))\n        a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ce2559c0a7fe9f5fe484be4e4710be5a2fa5b37daf182a551e0e3457ed01f587","qualified_name":"neg_involutive","statement":"∀ {G : Type u_3} [inst : InvolutiveNeg.{u_3} G],\n  @Function.Involutive.{u_3 + 1} G (@Neg.neg.{u_3} G (@InvolutiveNeg.toNeg.{u_3} G inst))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-380f84ea9dd03ab28610e6da2a6b92d5607b66114701f92b247a0e01e39dbbce","qualified_name":"neg_ne_zero","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] {a : α},\n  Iff\n    (@Ne.{u_1 + 1} α\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))\n        a)\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@NegZeroClass.toZero.{u_1} α\n            (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst))))))\n    (@Ne.{u_1 + 1} α a\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@NegZeroClass.toZero.{u_1} α\n            (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a77ecda32f9d72c9da87346426a62c1de2a5dfca068e69fe2d1b48ce3184677e","qualified_name":"neg_neg_sub_neg","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@Neg.neg.{u_1} α\n      (@NegZeroClass.toNeg.{u_1} α\n        (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n          (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        (@Neg.neg.{u_1} α\n          (@NegZeroClass.toNeg.{u_1} α\n            (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α\n                (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n          a)\n        (@Neg.neg.{u_1} α\n          (@NegZeroClass.toNeg.{u_1} α\n            (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α\n                (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n          b)))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-1867bb68827b28f14546faee23afd104c92d4e9ab0ac5c22f24a32205f216852","qualified_name":"neg_nsmul","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a : α) (n : Nat),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{0, u_1, u_1} Nat α α\n      (@instHSMul.{0, u_1} Nat α\n        (@NSMul.toSMul.{u_1} α\n          (@AddMonoid.toNSMul.{u_1} α\n            (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))\n      n\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))\n        a))\n    (@Neg.neg.{u_1} α\n      (@NegZeroClass.toNeg.{u_1} α\n        (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))\n      (@HSMul.hSMul.{0, u_1, u_1} Nat α α\n        (@instHSMul.{0, u_1} Nat α\n          (@NSMul.toSMul.{u_1} α\n            (@AddMonoid.toNSMul.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))\n        n a))"},{"kind":"definition","module":"Mathlib.Algebra.Group.Basic","object_id":"object-7991a1512dea043a766c4b5fa76a3be14545b8d8999ea4e2e0c1e801681b2e7f","qualified_name":"neg_nsmul._f","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a : α) (x : Nat)\n  (f :\n    @Nat.below.{0}\n      (fun x =>\n        @Eq.{u_1 + 1} α\n          (@HSMul.hSMul.{0, u_1, u_1} Nat α α\n            (@instHSMul.{0, u_1} Nat α\n              (@NSMul.toSMul.{u_1} α\n                (@AddMonoid.toNSMul.{u_1} α\n                  (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))\n            x\n            (@Neg.neg.{u_1} α\n              (@NegZeroClass.toNeg.{u_1} α\n                (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))\n              a))\n          (@Neg.neg.{u_1} α\n            (@NegZeroClass.toNeg.{u_1} α\n              (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))\n            (@HSMul.hSMul.{0, u_1, u_1} Nat α α\n              (@instHSMul.{0, u_1} Nat α\n                (@NSMul.toSMul.{u_1} α\n                  (@AddMonoid.toNSMul.{u_1} α\n                    (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))\n              x a)))\n      x),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{0, u_1, u_1} Nat α α\n      (@instHSMul.{0, u_1} Nat α\n        (@NSMul.toSMul.{u_1} α\n          (@AddMonoid.toNSMul.{u_1} α\n            (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))\n      x\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))\n        a))\n    (@Neg.neg.{u_1} α\n      (@NegZeroClass.toNeg.{u_1} α\n        (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))\n      (@HSMul.hSMul.{0, u_1, u_1} Nat α α\n        (@instHSMul.{0, u_1} Nat α\n          (@NSMul.toSMul.{u_1} α\n            (@AddMonoid.toNSMul.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))\n        x a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-161de2aa978bf3b6ed7d4db1b8538804c31f83f43f01d721b06711f373188e7d","qualified_name":"neg_one_zsmul_add","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{0, u_1, u_1} Int α α\n      (@instHSMul.{0, u_1} Int α\n        (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n      (@Neg.neg.{0} Int Int.instNegInt (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1))))\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))\n        a b))\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))\n      (@HSMul.hSMul.{0, u_1, u_1} Int α α\n        (@instHSMul.{0, u_1} Int α\n          (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n        (@Neg.neg.{0} Int Int.instNegInt (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1)))) b)\n      (@HSMul.hSMul.{0, u_1, u_1} Int α α\n        (@instHSMul.{0, u_1} Int α\n          (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n        (@Neg.neg.{0} Int Int.instNegInt (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1)))) a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-1fbcab9deffc9ee2946e2263c43fb2f9f6cdfa3eb1214824475e35dc8612ffa1","qualified_name":"neg_sub","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@Neg.neg.{u_1} α (@SubNegMonoid.toNeg.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))) a b))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))) b a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e20749221d700142aaffff5c1123f725161c231e6b88be494f09faad662c1b44","qualified_name":"neg_sub'","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@Neg.neg.{u_1} α\n      (@NegZeroClass.toNeg.{u_1} α\n        (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n          (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a b))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a)\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-887ddd294f51b7916d3c0bebb62f4a314b6466157176055ccd444aae2a56eee2","qualified_name":"neg_sub_comm","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a)\n      b)\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        b)\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ca273749e1a14aff1d6f2fc6a692af56271eeaad26250017088026ea47ab4f27","qualified_name":"neg_sub_left","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n      (@Neg.neg.{u_1} α (@SubNegMonoid.toNeg.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)) a) b)\n    (@Neg.neg.{u_1} α (@SubNegMonoid.toNeg.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))\n        b a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-68967fe5a4d5979c50892de2ab9898f2c85412a1e59469e374e76cfdd40c4c44","qualified_name":"neg_sub_neg","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a)\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        b))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      b a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e6669840a4bfb77f7b2c27d9d65b5461a154edaa23837cf57bac0b6e1dfa6d57","qualified_name":"neg_surjective","statement":"∀ {G : Type u_3} [inst : InvolutiveNeg.{u_3} G],\n  @Function.Surjective.{u_3 + 1, u_3 + 1} G G (@Neg.neg.{u_3} G (@InvolutiveNeg.toNeg.{u_3} G inst))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e3781d001742132bd3fe7d43a8d208c79b0ebea0e478b5672606ba8829c52cc7","qualified_name":"neg_unique","statement":"∀ {M : Type u_4} [inst : AddCommMonoid.{u_4} M] {x y z : M},\n  @Eq.{u_4 + 1} M\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M\n            (@AddZeroClass.toAddZero.{u_4} M\n              (@AddMonoid.toAddZeroClass.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst)))))\n        x y)\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M\n            (@AddZeroClass.toAddZero.{u_4} M\n              (@AddMonoid.toAddZeroClass.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst)))))) →\n    @Eq.{u_4 + 1} M\n        (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n          (@instHAdd.{u_4} M\n            (@AddZero.toAdd.{u_4} M\n              (@AddZeroClass.toAddZero.{u_4} M\n                (@AddMonoid.toAddZeroClass.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst)))))\n          x z)\n        (@OfNat.ofNat.{u_4} M (nat_lit 0)\n          (@Zero.toOfNat0.{u_4} M\n            (@AddZero.toZero.{u_4} M\n              (@AddZeroClass.toAddZero.{u_4} M\n                (@AddMonoid.toAddZeroClass.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst)))))) →\n      @Eq.{u_4 + 1} M y z"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5430f8b748d6ef8a7447af56183017ade3c5fb677da0dc609244cb8851e6b8a2","qualified_name":"neg_zsmul","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a : α) (n : Int),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{0, u_1, u_1} Int α α\n      (@instHSMul.{0, u_1} Int α\n        (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n      (@Neg.neg.{0} Int Int.instNegInt n) a)\n    (@Neg.neg.{u_1} α\n      (@NegZeroClass.toNeg.{u_1} α\n        (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))\n      (@HSMul.hSMul.{0, u_1, u_1} Int α α\n        (@instHSMul.{0, u_1} Int α\n          (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n        n a))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-51da7b85f72e42d94df8f87967441a797c22361bff820c44c9840487b34bed25","qualified_name":"noZeroDivisors_iff_isDomain_or_subsingleton","statement":"∀ (α : Type u_3) [inst : Ring.{u_3} α],\n  Iff\n    (@NoZeroDivisors.{u_3} α (@Distrib.toMul.{u_3} α (@instDistribOfSemiring.{u_3} α (@Ring.toSemiring.{u_3} α inst)))\n      (@MulZeroClass.toZero.{u_3} α (@instMulZeroClassOfSemiring.{u_3} α (@Ring.toSemiring.{u_3} α inst))))\n    (Or (@IsDomain.{u_3} α (@Ring.toSemiring.{u_3} α inst)) (Subsingleton.{u_3 + 1} α))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-65a9f052172a042e5bcb809bd7b29069e72c2ea440aa55709f276729a8868188","qualified_name":"noZeroDivisors_tfae","statement":"∀ {R : Type u_3} [inst : NonUnitalNonAssocRing.{u_3} R],\n  (@List.cons.{0} Prop\n      (@NoZeroDivisors.{u_3} R\n        (@Distrib.toMul.{u_3} R\n          (@NonUnitalNonAssocSemiring.toDistrib.{u_3} R\n            (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst)))\n        (@MulZeroClass.toZero.{u_3} R\n          (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n            (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))\n      (@List.cons.{0} Prop\n        (@IsLeftCancelMulZero.{u_3} R\n          (@Distrib.toMul.{u_3} R\n            (@NonUnitalNonAssocSemiring.toDistrib.{u_3} R\n              (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst)))\n          (@MulZeroClass.toZero.{u_3} R\n            (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n              (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))\n        (@List.cons.{0} Prop\n          (@IsRightCancelMulZero.{u_3} R\n            (@Distrib.toMul.{u_3} R\n              (@NonUnitalNonAssocSemiring.toDistrib.{u_3} R\n                (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst)))\n            (@MulZeroClass.toZero.{u_3} R\n              (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n                (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))\n          (@List.cons.{0} Prop\n            (@IsCancelMulZero.{u_3} R\n              (@Distrib.toMul.{u_3} R\n                (@NonUnitalNonAssocSemiring.toDistrib.{u_3} R\n                  (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst)))\n              (@MulZeroClass.toZero.{u_3} R\n                (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} R\n                  (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} R inst))))\n            (@List.nil.{0} Prop))))).TFAE"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-1e727478d7f860429c99c42295ce006e81990e79227cb6d3f9e79f5a643f7a62","qualified_name":"not_lt_iff_eq_or_lt","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  Iff\n    (Not\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b))\n    (Or (@Eq.{u_2 + 1} α a b)\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-b4989809dfb745330063ee57bcfb52518db748877b9fb420ae3b697ad0884471","qualified_name":"not_lt_iff_eq_or_lt'","statement":"∀ {α : Type u_2} [inst : LinearOrder.{u_2} α] {a b : α},\n  Iff\n    (Not\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) b a))\n    (Or (@Eq.{u_2 + 1} α a b)\n      (@LT.lt.{u_2} α\n        (@Preorder.toLT.{u_2} α (@PartialOrder.toPreorder.{u_2} α (@LinearOrder.toPartialOrder.{u_2} α inst))) a b))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-7d32239b02692dff6334a7b11f843c689f0bb603c2cfdea310cbf9ccda25759c","qualified_name":"not_lt_iff_le_imp_ge","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b : α},\n  Iff (Not (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) a b))\n    (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a b → @LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) b a)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-c6cef436c83d9c60b5e47a6dd5cba292b132810d4cfaedfd34fc51f1ebcb5171","qualified_name":"not_lt_iff_not_le_or_ge","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b : α},\n  Iff (Not (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) a b))\n    (Or (Not (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) a b)) (@LE.le.{u_2} α (@Preorder.toLE.{u_2} α inst) b a))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-904503552332d64095285098e7276f3a1733741a45b76e57807f7f532ad91877","qualified_name":"not_lt_of_subsingleton","statement":"∀ {α : Type u_2} [inst : Preorder.{u_2} α] {a b : α} [Subsingleton.{u_2 + 1} α],\n  Not (@LT.lt.{u_2} α (@Preorder.toLT.{u_2} α inst) a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5692589990f93815204a8ca8f4fbc629faa7d14768df00b7c1a7dea38ae09d52","qualified_name":"nsmul_add","statement":"∀ {M : Type u_4} [inst : AddCommMonoid.{u_4} M] (a b : M) (n : Nat),\n  @Eq.{u_4 + 1} M\n    (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n      (@instHSMul.{0, u_4} Nat M\n        (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst))))\n      n\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M\n            (@AddZeroClass.toAddZero.{u_4} M\n              (@AddMonoid.toAddZeroClass.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst)))))\n        a b))\n    (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n      (@instHAdd.{u_4} M\n        (@AddZero.toAdd.{u_4} M\n          (@AddZeroClass.toAddZero.{u_4} M\n            (@AddMonoid.toAddZeroClass.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst)))))\n      (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n        (@instHSMul.{0, u_4} Nat M\n          (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst))))\n        n a)\n      (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n        (@instHSMul.{0, u_4} Nat M\n          (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst))))\n        n b))"},{"kind":"definition","module":"Mathlib.Algebra.Group.Basic","object_id":"object-187959524ebd275a5ae8464f9b4a9c3b07ce48c870922ead07eab1a3efd56fa7","qualified_name":"nsmul_add._f","statement":"∀ {M : Type u_4} [inst : AddCommMonoid.{u_4} M] (a b : M) (x : Nat)\n  (f :\n    @Nat.below.{0}\n      (fun x =>\n        @Eq.{u_4 + 1} M\n          (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n            (@instHSMul.{0, u_4} Nat M\n              (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst))))\n            x\n            (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n              (@instHAdd.{u_4} M\n                (@AddZero.toAdd.{u_4} M\n                  (@AddZeroClass.toAddZero.{u_4} M\n                    (@AddMonoid.toAddZeroClass.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst)))))\n              a b))\n          (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n            (@instHAdd.{u_4} M\n              (@AddZero.toAdd.{u_4} M\n                (@AddZeroClass.toAddZero.{u_4} M\n                  (@AddMonoid.toAddZeroClass.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst)))))\n            (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n              (@instHSMul.{0, u_4} Nat M\n                (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst))))\n              x a)\n            (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n              (@instHSMul.{0, u_4} Nat M\n                (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst))))\n              x b)))\n      x),\n  @Eq.{u_4 + 1} M\n    (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n      (@instHSMul.{0, u_4} Nat M\n        (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst))))\n      x\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M\n            (@AddZeroClass.toAddZero.{u_4} M\n              (@AddMonoid.toAddZeroClass.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst)))))\n        a b))\n    (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n      (@instHAdd.{u_4} M\n        (@AddZero.toAdd.{u_4} M\n          (@AddZeroClass.toAddZero.{u_4} M\n            (@AddMonoid.toAddZeroClass.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst)))))\n      (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n        (@instHSMul.{0, u_4} Nat M\n          (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst))))\n        x a)\n      (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n        (@instHSMul.{0, u_4} Nat M\n          (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M (@AddCommMonoid.toAddMonoid.{u_4} M inst))))\n        x b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-69ff26c8bdecf4a133d9fc57278a892a1a619a1386f79bbab49b65d414c4096d","qualified_name":"nsmul_add_nsmul_eq_zero","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] {a b : M} (n : Nat),\n  @Eq.{u_4 + 1} M\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n        a b)\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))) →\n    @Eq.{u_4 + 1} M\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n        (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n          (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) n a)\n        (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n          (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) n b))\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst)))))"},{"kind":"definition","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b4843571a566aac3be3714428e9ad16e8c6a3afc4229c9d2c357d407cbbe3697","qualified_name":"nsmul_add_nsmul_eq_zero._f","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] {a b : M} (x : Nat)\n  (f :\n    @Nat.below.{0}\n      (fun x =>\n        @Eq.{u_4 + 1} M\n            (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n              (@instHAdd.{u_4} M\n                (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n              a b)\n            (@OfNat.ofNat.{u_4} M (nat_lit 0)\n              (@Zero.toOfNat0.{u_4} M\n                (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))) →\n          @Eq.{u_4 + 1} M\n            (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n              (@instHAdd.{u_4} M\n                (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n              (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n                (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) x a)\n              (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n                (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) x b))\n            (@OfNat.ofNat.{u_4} M (nat_lit 0)\n              (@Zero.toOfNat0.{u_4} M\n                (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))))\n      x),\n  @Eq.{u_4 + 1} M\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n        a b)\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))) →\n    @Eq.{u_4 + 1} M\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n        (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n          (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) x a)\n        (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n          (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) x b))\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst)))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-32b489d8bc0791430c29c907ae6e875e484057efc7faf8ff530d69338de87434","qualified_name":"nsmul_add_sub_nsmul","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] {m n : Nat} (a : M),\n  @LE.le.{0} Nat instLENat m n →\n    @Eq.{u_4 + 1} M\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n        (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n          (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) m a)\n        (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n          (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst)))\n          (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) n m) a))\n      (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n        (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) n a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-913f61b531636adf953dcc5bd931a2a8c32f2bd38934ccf5e7a7d2d0366731df","qualified_name":"nsmul_eq_mod_nsmul","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] {a : M} {n : Nat} (m : Nat),\n  @Eq.{u_4 + 1} M\n      (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n        (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) n a)\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))) →\n    @Eq.{u_4 + 1} M\n      (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n        (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) m a)\n      (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n        (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst)))\n        (@HMod.hMod.{0, 0, 0} Nat Nat Nat (@instHMod.{0} Nat Nat.instMod) m n) a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-7989c6a19cf92bff6c0648eb8a3d7b9069e687b1fabdc40ed0aaddc4ec10c903","qualified_name":"nsmul_iterate","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] (k n : Nat),\n  @Eq.{u_4 + 1} (M → M)\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HSMul.hSMul.{0, u_4, u_4} Nat M M\n          (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) k x)\n      n)\n    fun x =>\n    @HSMul.hSMul.{0, u_4, u_4} Nat M M\n      (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst)))\n      (@HPow.hPow.{0, 0, 0} Nat Nat Nat (@instHPow.{0, 0} Nat Nat (@instPowNat.{0} Nat instNatPowNat)) k n) x"},{"kind":"definition","module":"Mathlib.Algebra.Group.Basic","object_id":"object-7ed3c813a2f995231ed9b74757163a96754a1ebad970e6640e6aed40b73a70b7","qualified_name":"nsmul_iterate._f","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] (k x : Nat)\n  (f :\n    @Nat.below.{0}\n      (fun x =>\n        @Eq.{u_4 + 1} (M → M)\n          (@Nat.iterate.{u_4 + 1} M\n            (fun x =>\n              @HSMul.hSMul.{0, u_4, u_4} Nat M M\n                (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) k x)\n            x)\n          fun x_1 =>\n          @HSMul.hSMul.{0, u_4, u_4} Nat M M\n            (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst)))\n            (@HPow.hPow.{0, 0, 0} Nat Nat Nat (@instHPow.{0, 0} Nat Nat (@instPowNat.{0} Nat instNatPowNat)) k x) x_1)\n      x),\n  @Eq.{u_4 + 1} (M → M)\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HSMul.hSMul.{0, u_4, u_4} Nat M M\n          (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) k x)\n      x)\n    fun x_1 =>\n    @HSMul.hSMul.{0, u_4, u_4} Nat M M\n      (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst)))\n      (@HPow.hPow.{0, 0, 0} Nat Nat Nat (@instHPow.{0, 0} Nat Nat (@instPowNat.{0} Nat instNatPowNat)) k x) x_1"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b88d380af73dda9cb8cda3349ec49567e2b211c817cfd4688cc51ea9c9c3ba36","qualified_name":"nsmul_sub","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b : α) (n : Nat),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{0, u_1, u_1} Nat α α\n      (@instHSMul.{0, u_1} Nat α\n        (@NSMul.toSMul.{u_1} α\n          (@AddMonoid.toNSMul.{u_1} α\n            (@SubNegMonoid.toAddMonoid.{u_1} α\n              (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))))\n      n\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a b))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HSMul.hSMul.{0, u_1, u_1} Nat α α\n        (@instHSMul.{0, u_1} Nat α\n          (@NSMul.toSMul.{u_1} α\n            (@AddMonoid.toNSMul.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))))\n        n a)\n      (@HSMul.hSMul.{0, u_1, u_1} Nat α α\n        (@instHSMul.{0, u_1} Nat α\n          (@NSMul.toSMul.{u_1} α\n            (@AddMonoid.toNSMul.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))))\n        n b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d2a0bb6784c3688c76ea840cc69d51e89ffd026b355950006bb533d6c1538e4f","qualified_name":"nsmul_zero_sub","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a : α) (n : Nat),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{0, u_1, u_1} Nat α α\n      (@instHSMul.{0, u_1} Nat α\n        (@NSMul.toSMul.{u_1} α\n          (@AddMonoid.toNSMul.{u_1} α\n            (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))\n      n\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 0)\n          (@Zero.toOfNat0.{u_1} α\n            (@NegZeroClass.toZero.{u_1} α\n              (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))))\n        a))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@NegZeroClass.toZero.{u_1} α\n            (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))))\n      (@HSMul.hSMul.{0, u_1, u_1} Nat α α\n        (@instHSMul.{0, u_1} Nat α\n          (@NSMul.toSMul.{u_1} α\n            (@AddMonoid.toNSMul.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))\n        n a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-cbf987ed30b52be24ebbaba44e909d3063a76d8db85f47dd77b52e5ecd1dc059","qualified_name":"one_add_zsmul","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a : G) (n : Int),\n  @Eq.{u_3 + 1} G\n    (@HSMul.hSMul.{0, u_3, u_3} Int G G\n      (@instHSMul.{0, u_3} Int G\n        (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n      (@HAdd.hAdd.{0, 0, 0} Int Int Int (@instHAdd.{0} Int Int.instAdd)\n        (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1))) n)\n      a)\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      a\n      (@HSMul.hSMul.{0, u_3, u_3} Int G G\n        (@instHSMul.{0, u_3} Int G\n          (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n        n a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-7c1d7c620ae042b6e2570e2dbaab3b369b43b776d157b84efe8d0b7c40a61597","qualified_name":"one_div_div","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@MulOne.toOne.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))) a b))\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))) b a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b718766ae8c806798a04acd5dd80543a6c7645805bcdc072df1c34235e3fdcc1","qualified_name":"one_div_mul_eq_div","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        (@OfNat.ofNat.{u_1} α (nat_lit 1)\n          (@One.toOfNat1.{u_1} α\n            (@InvOneClass.toOne.{u_1} α\n              (@DivInvOneMonoid.toInvOneClass.{u_1} α\n                (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))))\n        a)\n      b)\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      b a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-0698cb7424bf288b073238076af84b21d021dc9aa15ed49e334d1be1496f1e1c","qualified_name":"one_div_mul_one_div","statement":"∀ {α : Type u_1} [inst : DivisionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α\n                (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        (@OfNat.ofNat.{u_1} α (nat_lit 1)\n          (@One.toOfNat1.{u_1} α\n            (@InvOneClass.toOne.{u_1} α\n              (@DivInvOneMonoid.toInvOneClass.{u_1} α\n                (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))))\n        a)\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α\n          (@DivInvMonoid.toDiv.{u_1} α\n            (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n        (@OfNat.ofNat.{u_1} α (nat_lit 1)\n          (@One.toOfNat1.{u_1} α\n            (@InvOneClass.toOne.{u_1} α\n              (@DivInvOneMonoid.toInvOneClass.{u_1} α\n                (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))))\n        b))\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α\n        (@DivInvMonoid.toDiv.{u_1} α\n          (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@InvOneClass.toOne.{u_1} α\n            (@DivInvOneMonoid.toInvOneClass.{u_1} α\n              (@DivisionMonoid.toDivInvOneMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst))))))\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α\n                  (@DivisionMonoid.toDivInvMonoid.{u_1} α (@DivisionCommMonoid.toDivisionMonoid.{u_1} α inst)))))))\n        a b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d7e66eafa298368714ed4b09b135f1f93b1b6a653d57e0857f1a83e08bb89801","qualified_name":"one_div_mul_one_div_rev","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HMul.hMul.{u_1, u_1, u_1} α α α\n      (@instHMul.{u_1} α\n        (@MulOne.toMul.{u_1} α\n          (@MulOneClass.toMulOne.{u_1} α\n            (@Monoid.toMulOneClass.{u_1} α\n              (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 1)\n          (@One.toOfNat1.{u_1} α\n            (@MulOne.toOne.{u_1} α\n              (@MulOneClass.toMulOne.{u_1} α\n                (@Monoid.toMulOneClass.{u_1} α\n                  (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))))))\n        a)\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 1)\n          (@One.toOfNat1.{u_1} α\n            (@MulOne.toOne.{u_1} α\n              (@MulOneClass.toMulOne.{u_1} α\n                (@Monoid.toMulOneClass.{u_1} α\n                  (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))))))\n        b))\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@MulOne.toOne.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))))))\n      (@HMul.hMul.{u_1, u_1, u_1} α α α\n        (@instHMul.{u_1} α\n          (@MulOne.toMul.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))))\n        b a))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-107a01b4d2baa2fca58313a878fe10b52373eb52d0c3fddcb5ecf7534188669c","qualified_name":"one_div_neg_eq_neg_one_div","statement":"∀ {R : Type u_1} [inst : DivisionMonoid.{u_1} R]\n  [inst_1 :\n    @HasDistribNeg.{u_1} R\n      (@MulOne.toMul.{u_1} R\n        (@MulOneClass.toMulOne.{u_1} R\n          (@Monoid.toMulOneClass.{u_1} R\n            (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))]\n  (a : R),\n  @Eq.{u_1 + 1} R\n    (@HDiv.hDiv.{u_1, u_1, u_1} R R R\n      (@instHDiv.{u_1} R (@DivInvMonoid.toDiv.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))\n      (@OfNat.ofNat.{u_1} R (nat_lit 1)\n        (@One.toOfNat1.{u_1} R\n          (@InvOneClass.toOne.{u_1} R\n            (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))))\n      (@Neg.neg.{u_1} R\n        (@InvolutiveNeg.toNeg.{u_1} R\n          (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n            (@MulOne.toMul.{u_1} R\n              (@MulOneClass.toMulOne.{u_1} R\n                (@Monoid.toMulOneClass.{u_1} R\n                  (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n            inst_1))\n        a))\n    (@Neg.neg.{u_1} R\n      (@InvolutiveNeg.toNeg.{u_1} R\n        (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n          (@MulOne.toMul.{u_1} R\n            (@MulOneClass.toMulOne.{u_1} R\n              (@Monoid.toMulOneClass.{u_1} R\n                (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n          inst_1))\n      (@HDiv.hDiv.{u_1, u_1, u_1} R R R\n        (@instHDiv.{u_1} R (@DivInvMonoid.toDiv.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))\n        (@OfNat.ofNat.{u_1} R (nat_lit 1)\n          (@One.toOfNat1.{u_1} R\n            (@InvOneClass.toOne.{u_1} R\n              (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))))\n        a))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-808f063654253ad7775f86a9eec01999924f7f592a85450a54be2038def9a87a","qualified_name":"one_div_neg_one_eq_neg_one","statement":"∀ {R : Type u_1} [inst : DivisionMonoid.{u_1} R]\n  [inst_1 :\n    @HasDistribNeg.{u_1} R\n      (@MulOne.toMul.{u_1} R\n        (@MulOneClass.toMulOne.{u_1} R\n          (@Monoid.toMulOneClass.{u_1} R\n            (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))],\n  @Eq.{u_1 + 1} R\n    (@HDiv.hDiv.{u_1, u_1, u_1} R R R\n      (@instHDiv.{u_1} R (@DivInvMonoid.toDiv.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))\n      (@OfNat.ofNat.{u_1} R (nat_lit 1)\n        (@One.toOfNat1.{u_1} R\n          (@InvOneClass.toOne.{u_1} R\n            (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))))\n      (@Neg.neg.{u_1} R\n        (@InvolutiveNeg.toNeg.{u_1} R\n          (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n            (@MulOne.toMul.{u_1} R\n              (@MulOneClass.toMulOne.{u_1} R\n                (@Monoid.toMulOneClass.{u_1} R\n                  (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n            inst_1))\n        (@OfNat.ofNat.{u_1} R (nat_lit 1)\n          (@One.toOfNat1.{u_1} R\n            (@InvOneClass.toOne.{u_1} R\n              (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst)))))))\n    (@Neg.neg.{u_1} R\n      (@InvolutiveNeg.toNeg.{u_1} R\n        (@HasDistribNeg.toInvolutiveNeg.{u_1} R\n          (@MulOne.toMul.{u_1} R\n            (@MulOneClass.toMulOne.{u_1} R\n              (@Monoid.toMulOneClass.{u_1} R\n                (@DivInvMonoid.toMonoid.{u_1} R (@DivisionMonoid.toDivInvMonoid.{u_1} R inst)))))\n          inst_1))\n      (@OfNat.ofNat.{u_1} R (nat_lit 1)\n        (@One.toOfNat1.{u_1} R\n          (@InvOneClass.toOne.{u_1} R\n            (@DivInvOneMonoid.toInvOneClass.{u_1} R (@DivisionMonoid.toDivInvOneMonoid.{u_1} R inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-bde6978e2fae5e558af5d9e801dffe8d498551902dfde60714f27e9e2b53f73b","qualified_name":"one_div_one","statement":"∀ {G : Type u_3} [inst : DivInvOneMonoid.{u_3} G],\n  @Eq.{u_3 + 1} G\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@DivInvOneMonoid.toDivInvMonoid.{u_3} G inst)))\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G (@InvOneClass.toOne.{u_3} G (@DivInvOneMonoid.toInvOneClass.{u_3} G inst))))\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G (@InvOneClass.toOne.{u_3} G (@DivInvOneMonoid.toInvOneClass.{u_3} G inst)))))\n    (@OfNat.ofNat.{u_3} G (nat_lit 1)\n      (@One.toOfNat1.{u_3} G (@InvOneClass.toOne.{u_3} G (@DivInvOneMonoid.toInvOneClass.{u_3} G inst))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-133aa74d9c4736cbb6e1a4257d38363bc4a14ebb5bad035c863177ee561e3d6e","qualified_name":"one_div_one_div","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a : α),\n  @Eq.{u_1 + 1} α\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@MulOne.toOne.{u_1} α\n            (@MulOneClass.toMulOne.{u_1} α\n              (@Monoid.toMulOneClass.{u_1} α\n                (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 1)\n          (@One.toOfNat1.{u_1} α\n            (@MulOne.toOne.{u_1} α\n              (@MulOneClass.toMulOne.{u_1} α\n                (@Monoid.toMulOneClass.{u_1} α\n                  (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))))))\n        a))\n    a"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e13bfb40c75c679a7955ba24700febb4d949e37b1db9ad7b6cf9da4ad13efa36","qualified_name":"one_div_pow","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a : α) (n : Nat),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, 0, u_1} α Nat α\n      (@instHPow.{u_1, 0} α Nat\n        (@NPow.toPow.{u_1} α\n          (@Monoid.toNPow.{u_1} α (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 1)\n          (@One.toOfNat1.{u_1} α\n            (@InvOneClass.toOne.{u_1} α\n              (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))))\n        a)\n      n)\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@InvOneClass.toOne.{u_1} α\n            (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))))\n      (@HPow.hPow.{u_1, 0, u_1} α Nat α\n        (@instHPow.{u_1, 0} α Nat\n          (@NPow.toPow.{u_1} α\n            (@Monoid.toNPow.{u_1} α (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))))\n        a n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-851c6fe507e397c99c156612acac7f82d77c5b6860075b709b04efd60336b15a","qualified_name":"one_div_zpow","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a : α) (n : Int),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, 0, u_1} α Int α\n      (@instHPow.{u_1, 0} α Int\n        (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n      (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n        (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 1)\n          (@One.toOfNat1.{u_1} α\n            (@InvOneClass.toOne.{u_1} α\n              (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))))\n        a)\n      n)\n    (@HDiv.hDiv.{u_1, u_1, u_1} α α α\n      (@instHDiv.{u_1} α (@DivInvMonoid.toDiv.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@InvOneClass.toOne.{u_1} α\n            (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))))\n      (@HPow.hPow.{u_1, 0, u_1} α Int α\n        (@instHPow.{u_1, 0} α Int\n          (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n        a n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-8eaaeae1ee480bd738eecc3c695c9858544a0f421eb4d640bb312304ff685717","qualified_name":"one_eq_inv","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] {a : α},\n  Iff\n    (@Eq.{u_1 + 1} α\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@InvOneClass.toOne.{u_1} α\n            (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))))\n      (@Inv.inv.{u_1} α\n        (@InvOneClass.toInv.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))\n        a))\n    (@Eq.{u_1 + 1} α a\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@InvOneClass.toOne.{u_1} α\n            (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5f4eebffbd84353031949d57d512dccbdb9cde1364b2f688c6f154a217817344","qualified_name":"one_mul_eq_id","statement":"∀ {M : Type u_4} [inst : MulOneClass.{u_4} M],\n  @Eq.{u_4 + 1} (M → M)\n    (fun x =>\n      @HMul.hMul.{u_4, u_4, u_4} M M M (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst)))\n        (@OfNat.ofNat.{u_4} M (nat_lit 1)\n          (@One.toOfNat1.{u_4} M (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M inst))))\n        x)\n    (@id.{u_4 + 1} M)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a62271e8d81f2a972c52443f84096e97690482c452d3540958dd839b54dd9b2d","qualified_name":"one_sub_natCast_zsmul","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a : G) (n : Nat),\n  @Eq.{u_3 + 1} G\n    (@HSMul.hSMul.{0, u_3, u_3} Int G G\n      (@instHSMul.{0, u_3} Int G\n        (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n      (@HSub.hSub.{0, 0, 0} Int Int Int (@instHSub.{0} Int Int.instSub)\n        (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1))) (@Nat.cast.{0} Int instNatCastInt n))\n      a)\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a\n      (@HSMul.hSMul.{0, u_3, u_3} Nat G G\n        (@instHSMul.{0, u_3} Nat G\n          (@NSMul.toSMul.{u_3} G\n            (@AddMonoid.toNSMul.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst)))))\n        n a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-8c7c030d46f34b23b39214f8706a5a0cee6d2e8676b06b168852ea9a3a0cc462","qualified_name":"one_zpow","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (n : Int),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, 0, u_1} α Int α\n      (@instHPow.{u_1, 0} α Int\n        (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n      (@OfNat.ofNat.{u_1} α (nat_lit 1)\n        (@One.toOfNat1.{u_1} α\n          (@InvOneClass.toOne.{u_1} α\n            (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))))\n      n)\n    (@OfNat.ofNat.{u_1} α (nat_lit 1)\n      (@One.toOfNat1.{u_1} α\n        (@InvOneClass.toOne.{u_1} α\n          (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-792f97c5d238d33e3f0bb556278c50625bd31552e16cf35a92728cd8418c4e4c","qualified_name":"pow_boole","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] (P : Prop) [inst_1 : Decidable P] (a : M),\n  @Eq.{u_4 + 1} M\n    (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n      (@ite.{1} Nat P inst_1 (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))\n        (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0)))))\n    (@ite.{u_4 + 1} M P inst_1 a\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M\n          (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-069ed98bd69d402f1479a105c782456e2b7eae7801524b67a33da6327c2b53a4","qualified_name":"pow_dite","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : Pow.{u_1, u_2} α β] (p : Prop) [inst_1 : Decidable p] (a : α) (b : p → β)\n  (c : Not p → β),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, u_2, u_1} α β α (@instHPow.{u_1, u_2} α β inst) a\n      (@dite.{u_2 + 1} β p inst_1 (fun h => b h) fun h => c h))\n    (@dite.{u_1 + 1} α p inst_1 (fun h => @HPow.hPow.{u_1, u_2, u_1} α β α (@instHPow.{u_1, u_2} α β inst) a (b h))\n      fun h => @HPow.hPow.{u_1, u_2, u_1} α β α (@instHPow.{u_1, u_2} α β inst) a (c h))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b9bda1c42965553071fa4f8228bbd9d3332fb8e30ecc42eaa5fc4b600928396b","qualified_name":"pow_eq_pow_mod","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] {a : M} {n : Nat} (m : Nat),\n  @Eq.{u_4 + 1} M\n      (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n        n)\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M\n          (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))) →\n    @Eq.{u_4 + 1} M\n      (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n        m)\n      (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n        (@HMod.hMod.{0, 0, 0} Nat Nat Nat (@instHMod.{0} Nat Nat.instMod) m n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f5ffaa5ee2573d95ef3097deb84db8a4422fb20c285565e80c2f1b3551cc5617","qualified_name":"pow_ite","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : Pow.{u_1, u_2} α β] (p : Prop) [inst_1 : Decidable p] (a : α) (b c : β),\n  @Eq.{u_1 + 1} α (@HPow.hPow.{u_1, u_2, u_1} α β α (@instHPow.{u_1, u_2} α β inst) a (@ite.{u_2 + 1} β p inst_1 b c))\n    (@ite.{u_1 + 1} α p inst_1 (@HPow.hPow.{u_1, u_2, u_1} α β α (@instHPow.{u_1, u_2} α β inst) a b)\n      (@HPow.hPow.{u_1, u_2, u_1} α β α (@instHPow.{u_1, u_2} α β inst) a c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-98f6686845e33c0d031a06e8c294f2a707d57037e461d9d8062bd09565841b7f","qualified_name":"pow_iterate","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] (k n : Nat),\n  @Eq.{u_4 + 1} (M → M)\n    (@Nat.iterate.{u_4 + 1} M\n      (fun x =>\n        @HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst)))\n          x k)\n      n)\n    fun x =>\n    @HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) x\n      (@HPow.hPow.{0, 0, 0} Nat Nat Nat (@instHPow.{0, 0} Nat Nat (@instPowNat.{0} Nat instNatPowNat)) k n)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-11f82f47af336d7faaa5d5a00d486bf71848ccbb854333164e40e976858e0c56","qualified_name":"pow_mul_pow_eq_one","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] {a b : M} (n : Nat),\n  @Eq.{u_4 + 1} M\n      (@HMul.hMul.{u_4, u_4, u_4} M M M\n        (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n        a b)\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M\n          (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))) →\n    @Eq.{u_4 + 1} M\n      (@HMul.hMul.{u_4, u_4, u_4} M M M\n        (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n        (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst)))\n          a n)\n        (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst)))\n          b n))\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M\n          (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst)))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5a04d828c700e787d09ca86209d574068f5938f3b2476174f7a1d0c850410bf1","qualified_name":"pow_mul_pow_sub","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] {m n : Nat} (a : M),\n  @LE.le.{0} Nat instLENat m n →\n    @Eq.{u_4 + 1} M\n      (@HMul.hMul.{u_4, u_4, u_4} M M M\n        (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n        (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst)))\n          a m)\n        (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst)))\n          a (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) n m)))\n      (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n        n)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-954130bfdfaa92a1a29de6245cb616a089910d3c2a79e3f8598658e6663ccff5","qualified_name":"pow_natAbs_eq_one","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {a : G} {n : Int},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HPow.hPow.{u_3, 0, u_3} G Nat G\n        (@instHPow.{u_3, 0} G Nat\n          (@NPow.toPow.{u_3} G\n            (@Monoid.toNPow.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))))\n        a n.natAbs)\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        a n)\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c8cdcb0f18b62f51e0bc44f6e91de032f48d67401a6389121291432275a0b078","qualified_name":"pow_sub","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a : G) {m n : Nat},\n  @LE.le.{0} Nat instLENat n m →\n    @Eq.{u_3 + 1} G\n      (@HPow.hPow.{u_3, 0, u_3} G Nat G\n        (@instHPow.{u_3, 0} G Nat\n          (@NPow.toPow.{u_3} G\n            (@Monoid.toNPow.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))))\n        a (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) m n))\n      (@HMul.hMul.{u_3, u_3, u_3} G G G\n        (@instHMul.{u_3} G\n          (@MulOne.toMul.{u_3} G\n            (@MulOneClass.toMulOne.{u_3} G\n              (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n        (@HPow.hPow.{u_3, 0, u_3} G Nat G\n          (@instHPow.{u_3, 0} G Nat\n            (@NPow.toPow.{u_3} G\n              (@Monoid.toNPow.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))))\n          a m)\n        (@Inv.inv.{u_3} G\n          (@InvOneClass.toInv.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n          (@HPow.hPow.{u_3, 0, u_3} G Nat G\n            (@instHPow.{u_3, 0} G Nat\n              (@NPow.toPow.{u_3} G\n                (@Monoid.toNPow.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))))\n            a n)))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e4b13b47fffbadac4f69dc8cf4f23008a61ec0acd04a3c6223d78a780e25e2bc","qualified_name":"pow_sub_mul_pow","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] {m n : Nat} (a : M),\n  @LE.le.{0} Nat instLENat m n →\n    @Eq.{u_4 + 1} M\n      (@HMul.hMul.{u_4, u_4, u_4} M M M\n        (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n        (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst)))\n          a (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) n m))\n        (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst)))\n          a m))\n      (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n        n)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-bc0ee4e950f5069635b48a5d2de1a880da2c233169de9988e9442a35f0c3be52","qualified_name":"pow_sub_one_mul","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M] {n : Nat},\n  @Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    ∀ (a : M),\n      @Eq.{u_4 + 1} M\n        (@HMul.hMul.{u_4, u_4, u_4} M M M\n          (@instHMul.{u_4} M\n            (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n          (@HPow.hPow.{u_4, 0, u_4} M Nat M\n            (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst))) a\n            (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) n\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1)))))\n          a)\n        (@HPow.hPow.{u_4, 0, u_4} M Nat M (@instHPow.{u_4, 0} M Nat (@NPow.toPow.{u_4} M (@Monoid.toNPow.{u_4} M inst)))\n          a n)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-b176176f3b884d34d38942cd35f672db27b73096dacfced5375666a98affefc3","qualified_name":"pred_ne_self","statement":"∀ {α : Type u_3} [inst : NonAssocRing.{u_3} α] [Nontrivial.{u_3} α] (a : α),\n  @Ne.{u_3 + 1} α\n    (@HSub.hSub.{u_3, u_3, u_3} α α α\n      (@instHSub.{u_3} α\n        (@SubNegMonoid.toSub.{u_3} α\n          (@AddGroup.toSubNegMonoid.{u_3} α\n            (@AddGroupWithOne.toAddGroup.{u_3} α\n              (@AddCommGroupWithOne.toAddGroupWithOne.{u_3} α (@NonAssocRing.toAddCommGroupWithOne.{u_3} α inst))))))\n      a\n      (@OfNat.ofNat.{u_3} α (nat_lit 1)\n        (@One.toOfNat1.{u_3} α\n          (@AddMonoidWithOne.toOne.{u_3} α\n            (@AddGroupWithOne.toAddMonoidWithOne.{u_3} α\n              (@AddCommGroupWithOne.toAddGroupWithOne.{u_3} α (@NonAssocRing.toAddCommGroupWithOne.{u_3} α inst)))))))\n    a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-61cc6876e96a672a22e4c6426f409102c17ff13e2e24fa09df6a2410205fa574","qualified_name":"rel_imp_eq_of_rel_imp_le","statement":"∀ {α : Type u_2} {β : Type u_3} [inst : PartialOrder.{u_3} β] (r : α → α → Prop) [@Std.Symm.{u_2 + 1} α r] {f : α → β},\n  (∀ (a b : α), r a b → @LE.le.{u_3} β (@Preorder.toLE.{u_3} β (@PartialOrder.toPreorder.{u_3} β inst)) (f a) (f b)) →\n    ∀ {a b : α}, r a b → @Eq.{u_3 + 1} β (f a) (f b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-8e534f18ad068b86936da720012d7bc33e65f9ee3dd5289c812d62103da81886","qualified_name":"rightInverse_inv","statement":"∀ (G : Type u_3) [inst : InvolutiveInv.{u_3} G],\n  @Function.RightInverse.{u_3 + 1, u_3 + 1} G G (fun a => @Inv.inv.{u_3} G (@InvolutiveInv.toInv.{u_3} G inst) a)\n    fun a => @Inv.inv.{u_3} G (@InvolutiveInv.toInv.{u_3} G inst) a"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-8420755009f410e1420d82d1a7ed514ce7f9efa69329802186fa2dfa46007847","qualified_name":"rightInverse_neg","statement":"∀ (G : Type u_3) [inst : InvolutiveNeg.{u_3} G],\n  @Function.RightInverse.{u_3 + 1, u_3 + 1} G G (fun a => @Neg.neg.{u_3} G (@InvolutiveNeg.toNeg.{u_3} G inst) a)\n    fun a => @Neg.neg.{u_3} G (@InvolutiveNeg.toNeg.{u_3} G inst) a"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c145be3c9e6c16ae2953cc0acb857b2e6a5e94b0a7763c1c91fc188dacd86dc8","qualified_name":"right_eq_add","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M]\n  [@IsRightCancelAdd.{u_4} M\n      (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Eq.{u_4 + 1} M b\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n        a b))\n    (@Eq.{u_4 + 1} M a\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-1b26dae3bece6a30e469015f48398f4de29ff89fdec9aeb86b69b59fe4033b04","qualified_name":"right_eq_mul","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M]\n  [@IsRightCancelMul.{u_4} M\n      (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Eq.{u_4 + 1} M b\n      (@HMul.hMul.{u_4, u_4, u_4} M M M\n        (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n        a b))\n    (@Eq.{u_4 + 1} M a\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M\n          (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b2cabef9b8b6cba90bda10a0d6f5c02d3698909a1d4818baaeca0a067bde8e6a","qualified_name":"right_ne_add","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M]\n  [@IsRightCancelAdd.{u_4} M\n      (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Ne.{u_4 + 1} M b\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n        a b))\n    (@Ne.{u_4 + 1} M a\n      (@OfNat.ofNat.{u_4} M (nat_lit 0)\n        (@Zero.toOfNat0.{u_4} M\n          (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f7eaf401f26b192718bd75885411d92d3efce2eb421b1d932ed89f4aa8fc6f27","qualified_name":"right_ne_mul","statement":"∀ {M : Type u_4} [inst : Monoid.{u_4} M]\n  [@IsRightCancelMul.{u_4} M\n      (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst)))]\n  {a b : M},\n  Iff\n    (@Ne.{u_4 + 1} M b\n      (@HMul.hMul.{u_4, u_4, u_4} M M M\n        (@instHMul.{u_4} M (@MulOne.toMul.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))\n        a b))\n    (@Ne.{u_4 + 1} M a\n      (@OfNat.ofNat.{u_4} M (nat_lit 1)\n        (@One.toOfNat1.{u_4} M\n          (@MulOne.toOne.{u_4} M (@MulOneClass.toMulOne.{u_4} M (@Monoid.toMulOneClass.{u_4} M inst))))))"},{"kind":"theorem","module":"Mathlib.Data.Set.Basic","object_id":"object-8bd75ade7225e3f5fbfa9b03e985e81e7b7fbcf5d9094834caccc42c2d7b2840","qualified_name":"set_coe_cast","statement":"∀ {α : Type u} {s t : Set.{u} α} (H' : @Eq.{u + 1} (Set.{u} α) s t)\n  (H : @Eq.{u + 2} (Type u) (@Set.Elem.{u} α s) (@Set.Elem.{u} α t)) (x : @Set.Elem.{u} α s),\n  @Eq.{u + 1} (@Set.Elem.{u} α t) (@cast.{u + 1} (@Set.Elem.{u} α s) (@Set.Elem.{u} α t) H x)\n    (@Subtype.mk.{u + 1} α (fun x => @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) t x)\n      (@Subtype.val.{u + 1} α (fun x => @Membership.mem.{u, u} α (Set.{u} α) (@Set.instMembership.{u} α) s x) x) ⋯)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-69702896e64dbc09398612b578830eff8bf2364a4a74bbccde9d848057ecbac5","qualified_name":"smul_dite","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : SMul.{u_2, u_1} β α] (p : Prop) [inst_1 : Decidable p] (a : p → α)\n  (b : Not p → α) (c : β),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{u_2, u_1, u_1} β α α (@instHSMul.{u_2, u_1} β α inst) c\n      (@dite.{u_1 + 1} α p inst_1 (fun h => a h) fun h => b h))\n    (@dite.{u_1 + 1} α p inst_1 (fun h => @HSMul.hSMul.{u_2, u_1, u_1} β α α (@instHSMul.{u_2, u_1} β α inst) c (a h))\n      fun h => @HSMul.hSMul.{u_2, u_1, u_1} β α α (@instHSMul.{u_2, u_1} β α inst) c (b h))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-265445e760e48666f199317e7dba0770e92d68e5d48b51c8b2e7f86a88a7bc30","qualified_name":"smul_ite","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : SMul.{u_2, u_1} β α] (p : Prop) [inst_1 : Decidable p] (a b : α) (c : β),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{u_2, u_1, u_1} β α α (@instHSMul.{u_2, u_1} β α inst) c (@ite.{u_1 + 1} α p inst_1 a b))\n    (@ite.{u_1 + 1} α p inst_1 (@HSMul.hSMul.{u_2, u_1, u_1} β α α (@instHSMul.{u_2, u_1} β α inst) c a)\n      (@HSMul.hSMul.{u_2, u_1, u_1} β α α (@instHSMul.{u_2, u_1} β α inst) c b))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-830ded844f6d8f7a14effef2d409c85584246cb03e50d2e90e64061fcceba73f","qualified_name":"strongLT_of_le_of_strongLT","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → Preorder.{u_4} (π i)] {a b c : (i : ι) → π i},\n  @LE.le.{max u_1 u_4} ((i : ι) → π i) (@Pi.hasLe.{u_1, u_4} ι π fun i => @Preorder.toLE.{u_4} (π i) (inst i)) c b →\n    @StrongLT.{u_1, u_4} ι π (fun i => @Preorder.toLT.{u_4} (π i) (inst i)) b a →\n      @StrongLT.{u_1, u_4} ι π (fun i => @Preorder.toLT.{u_4} (π i) (inst i)) c a"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-29031ff471248eb323e589056e3620465f7443aa08adb69f3cb3ce845b020e0e","qualified_name":"strongLT_of_strongLT_of_le","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : (i : ι) → Preorder.{u_4} (π i)] {a b c : (i : ι) → π i},\n  @StrongLT.{u_1, u_4} ι π (fun i => @Preorder.toLT.{u_4} (π i) (inst i)) a b →\n    @LE.le.{max u_1 u_4} ((i : ι) → π i) (@Pi.hasLe.{u_1, u_4} ι π fun i => @Preorder.toLE.{u_4} (π i) (inst i)) b c →\n      @StrongLT.{u_1, u_4} ι π (fun i => @Preorder.toLT.{u_4} (π i) (inst i)) a c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-9c8190a1171d0231b3579e9955f472decd7ec060c2786ea98fbfb12d6e91651e","qualified_name":"sub_add","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a b)\n      c)\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      a\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        b c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a04ab43624370ef261b173196ec7e909cdb7a63fe7c406a67f7bbfdc9c4ac147","qualified_name":"sub_add_add_cancel","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G\n                (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        a c)\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        b c))\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G\n                (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n      a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e8566be550fcf8273739e115c926dab0f86f341f4fab45e277a9ad670cea4f29","qualified_name":"sub_add_cancel_left","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G\n        (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n      a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        a b))\n    (@Neg.neg.{u_3} G\n      (@NegZeroClass.toNeg.{u_3} G\n        (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n          (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G\n            (@SubtractionCommMonoid.toSubtractionMonoid.{u_3} G (@AddCommGroup.toDivisionAddCommMonoid.{u_3} G inst)))))\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-989542765f0f6d9e1c53827f247f9ccba1170fb16c3d71080d45d0d0ce15a091","qualified_name":"sub_add_cancel_right","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        b a))\n    (@Neg.neg.{u_3} G\n      (@NegZeroClass.toNeg.{u_3} G\n        (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n          (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-7fb5f10f556522d6b9f93c42faecd74c692b49d7475357fe92e3a0a132b61e09","qualified_name":"sub_add_comm","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a b)\n      c)\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        c b)\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-0fbfeda96bf1cf095ab9f0d061dc80ad44ea1d6b95d703b76c1dd0d1c84599a2","qualified_name":"sub_add_eq_add_sub","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a b)\n      c)\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α\n                  (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n        a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2692f17bcb1f3195be7e694a80edaa5da59bc1892c1a21632374e8631b22c561","qualified_name":"sub_add_eq_sub_add_zero_sub","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      a\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α\n                  (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n        b c))\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a b)\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        (@OfNat.ofNat.{u_1} α (nat_lit 0)\n          (@Zero.toOfNat0.{u_1} α\n            (@NegZeroClass.toZero.{u_1} α\n              (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n                (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))))\n        c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-472b1446309463f0622ebf7806211aff1bb22d84e660988e601f7a2f53a05180","qualified_name":"sub_add_eq_sub_sub","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      a\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α\n                  (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n        b c))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a b)\n      c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-1fb9265afba9f750b153693e986b8feb6b4d31491486b4a85dee62dcc94d3b06","qualified_name":"sub_add_eq_sub_sub_swap","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))) a\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))\n        b c))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))) a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-bb672c77990153aeba28c9711095aa1d26b7ca50f1a85d7225c20d7dc10feac8","qualified_name":"sub_add_sub_cancel","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a b)\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) b c))\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b31a759e4c2ff7ac55b0dfa7146795ecb582aadd736a65d1ec62d3f9ddb63f58","qualified_name":"sub_add_sub_cancel'","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G\n                (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        a b)\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        c a))\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G\n        (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n      c b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-027ee4279541b765186c639fd4e44d10f7b3b8415c9a0349933a0867b2788d48","qualified_name":"sub_add_sub_comm","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b c d : α),\n  @Eq.{u_1 + 1} α\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a b)\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        c d))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α\n                  (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n        a c)\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α\n                  (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n        b d))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ea7405b7988c5548d1054076ae387b7e501afc2faf209929484820ddcfd03b3f","qualified_name":"sub_eq_add_zero_sub","statement":"∀ {G : Type u_3} [inst : SubNegMonoid.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G (@HSub.hSub.{u_3, u_3, u_3} G G G (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G inst)) a b)\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G inst)))))\n      a\n      (@HSub.hSub.{u_3, u_3, u_3} G G G (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G inst))\n        (@OfNat.ofNat.{u_3} G (nat_lit 0)\n          (@Zero.toOfNat0.{u_3} G\n            (@AddZero.toZero.{u_3} G\n              (@AddZeroClass.toAddZero.{u_3} G\n                (@AddMonoid.toAddZeroClass.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G inst))))))\n        b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-bc87901238278bb594dea32fe76aace27694f7e07c80170365773e67982f38fa","qualified_name":"sub_eq_iff_comm","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        a b)\n      c)\n    (@Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b17d05470c3cf42a16badae95a7f1125616e5abeecb6316be313532cfebee828","qualified_name":"sub_eq_iff_eq_add","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a b)\n      c)\n    (@Eq.{u_3 + 1} G a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        c b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5fd313ceaf371e1b407459c2280503ae30939740253719ec527b4b5b8e01e48c","qualified_name":"sub_eq_iff_eq_add'","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        a b)\n      c)\n    (@Eq.{u_3 + 1} G a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        b c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-80578d422d6b46e3591d3943077e33820699e98d6f702c1be1bd5697f33c427c","qualified_name":"sub_eq_neg_add","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      a b)\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        b)\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-51d6333972686f101b3f2ba0503e249ffd4ec96fbdcb164f04db66283d9efdc0","qualified_name":"sub_eq_neg_self","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a b)\n      (@Neg.neg.{u_3} G\n        (@NegZeroClass.toNeg.{u_3} G\n          (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n        b))\n    (@Eq.{u_3 + 1} G a\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d6a8f94ae1e064d3adf273890ef74f3a22dce2728f71ccaceefae773eef52d07","qualified_name":"sub_eq_of_eq_add","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        c b) →\n    @Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a b)\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-62f9cbff93139a67e63cadc500cda3ff9eaad0c315415f489f96f90db2dced97","qualified_name":"sub_eq_of_eq_add'","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] {a b c : G},\n  @Eq.{u_3 + 1} G a\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        b c) →\n    @Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        a b)\n      c"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-bd30fb440ab96613ff0407cd9c6939366489228d72b552667aee2c3586428781","qualified_name":"sub_eq_self","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a b)\n      a)\n    (@Eq.{u_3 + 1} G b\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-14372740bbee0e816952710080fa9fe912a25da081d32c6c0358c5aad35c6d64","qualified_name":"sub_eq_sub_add_sub","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G\n        (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n      a b)\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G\n                (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        c b)\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        a c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-fb17ca0572874f1bbde60c7a2be2ee806e11542adb6c1d1f0c5d0ef46a11a847","qualified_name":"sub_eq_sub_iff_add_eq_add","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] {a b c d : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        a b)\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        c d))\n    (@Eq.{u_3 + 1} G\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        a d)\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G\n                  (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst)))))))\n        c b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c3a84ac3fbb13abe3f595801e21f8cca60b1e78cf3ad87d2fccba560b0078fc7","qualified_name":"sub_eq_sub_iff_comm","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a b c : α) {d : α},\n  Iff\n    (@Eq.{u_1 + 1} α\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))) a b)\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))) c d))\n    (@Eq.{u_1 + 1} α\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))) b a)\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))) d c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f588e88ef6a995dc0f06a2efaaa613c2f624622f41223b816724764b18e138a5","qualified_name":"sub_eq_sub_iff_sub_eq_sub","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] {a b c d : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        a b)\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        c d))\n    (@Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        a c)\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        b d))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-67b2ef448065439af4e6275bc8ea836bcc91d9352af36eade45589d88ece18a3","qualified_name":"sub_eq_zero","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))\n    (@Eq.{u_3 + 1} G a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e3d6326ceb39085c0547e5a48d3df88a4c2a1a67cd2148382466150860101066","qualified_name":"sub_eq_zero_of_eq","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b : G},\n  @Eq.{u_3 + 1} G a b →\n    @Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-7adcdd09aa5028f7917d9db56b730f3f97adaf0874912159d4c2cb8df348d46a","qualified_name":"sub_left_inj","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) b a)\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) c a))\n    (@Eq.{u_3 + 1} G b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-7183dd0e265760c087ded99b6f84747cd7e140354f6b25b821c135791f1850e1","qualified_name":"sub_left_injective","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {b : G},\n  @Function.Injective.{u_3 + 1, u_3 + 1} G G fun a =>\n    @HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e2320b0d30ebe6fcaa25f99d4d9d65fd940e72aa92211b34da9e6affcc183a93","qualified_name":"sub_ne_zero","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b : G},\n  Iff\n    (@Ne.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a b)\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))))\n    (@Ne.{u_3 + 1} G a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b69ea5b9bdc4ed554681979eb7fdd3b42d68dc1f5079937565f4f650b47df9a6","qualified_name":"sub_ne_zero_of_ne","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] {a b : α},\n  @Ne.{u_1 + 1} α a b →\n    @Ne.{u_1 + 1} α\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))) a b)\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@AddZero.toZero.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-68defdb0fdd4ac0f42ecf8ba7d5871be8b079cb050d8de985eba4f0e1b949239","qualified_name":"sub_neg_eq_add","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))) a\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))\n        b))\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))\n      a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-c2c273e45b7d337c9276e6f57cf61acb133af0bdcfeea55fd44a587c371b3fc5","qualified_name":"sub_nsmul","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a : G) {m n : Nat},\n  @LE.le.{0} Nat instLENat n m →\n    @Eq.{u_3 + 1} G\n      (@HSMul.hSMul.{0, u_3, u_3} Nat G G\n        (@instHSMul.{0, u_3} Nat G\n          (@NSMul.toSMul.{u_3} G\n            (@AddMonoid.toNSMul.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst)))))\n        (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) m n) a)\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        (@HSMul.hSMul.{0, u_3, u_3} Nat G G\n          (@instHSMul.{0, u_3} Nat G\n            (@NSMul.toSMul.{u_3} G\n              (@AddMonoid.toNSMul.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst)))))\n          m a)\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          (@HSMul.hSMul.{0, u_3, u_3} Nat G G\n            (@instHSMul.{0, u_3} Nat G\n              (@NSMul.toSMul.{u_3} G\n                (@AddMonoid.toNSMul.{u_3} G\n                  (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst)))))\n            n a)))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f1756225360d47384c5b2c0ef73e1c0069bae4b027ff7564ff1ef4f390f8fdfe","qualified_name":"sub_nsmul_neg","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a : G) {m n : Nat},\n  @LE.le.{0} Nat instLENat n m →\n    @Eq.{u_3 + 1} G\n      (@HSMul.hSMul.{0, u_3, u_3} Nat G G\n        (@instHSMul.{0, u_3} Nat G\n          (@NSMul.toSMul.{u_3} G\n            (@AddMonoid.toNSMul.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst)))))\n        (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) m n)\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          a))\n      (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n        (@instHAdd.{u_3} G\n          (@AddZero.toAdd.{u_3} G\n            (@AddZeroClass.toAddZero.{u_3} G\n              (@AddMonoid.toAddZeroClass.{u_3} G\n                (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n        (@Neg.neg.{u_3} G\n          (@NegZeroClass.toNeg.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n          (@HSMul.hSMul.{0, u_3, u_3} Nat G G\n            (@instHSMul.{0, u_3} Nat G\n              (@NSMul.toSMul.{u_3} G\n                (@AddMonoid.toNSMul.{u_3} G\n                  (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst)))))\n            m a))\n        (@HSMul.hSMul.{0, u_3, u_3} Nat G G\n          (@instHSMul.{0, u_3} Nat G\n            (@NSMul.toSMul.{u_3} G\n              (@AddMonoid.toNSMul.{u_3} G (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst)))))\n          n a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-398dcc85c9c7bc6a698c2a93834f242d35be31ff68ec88fb0391cacfb6b6fef7","qualified_name":"sub_nsmul_nsmul_add","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] {m n : Nat} (a : M),\n  @LE.le.{0} Nat instLENat m n →\n    @Eq.{u_4 + 1} M\n      (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M\n          (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n        (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n          (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst)))\n          (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) n m) a)\n        (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n          (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) m a))\n      (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n        (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) n a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-3f90d2ba0800d6d0365885422cbf32a34f526c05e257efd850ac0af46de8c8ab","qualified_name":"sub_one_nsmul_add","statement":"∀ {M : Type u_4} [inst : AddMonoid.{u_4} M] {n : Nat},\n  @Ne.{1} Nat n (@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))) →\n    ∀ (a : M),\n      @Eq.{u_4 + 1} M\n        (@HAdd.hAdd.{u_4, u_4, u_4} M M M\n          (@instHAdd.{u_4} M\n            (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M (@AddMonoid.toAddZeroClass.{u_4} M inst))))\n          a\n          (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n            (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst)))\n            (@HSub.hSub.{0, 0, 0} Nat Nat Nat (@instHSub.{0} Nat instSubNat) n\n              (@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))\n            a))\n        (@HSMul.hSMul.{0, u_4, u_4} Nat M M\n          (@instHSMul.{0, u_4} Nat M (@NSMul.toSMul.{u_4} M (@AddMonoid.toNSMul.{u_4} M inst))) n a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-f85947d4126b620ebe994495fdc9f0168708e3dbfed1bcad09c5de4e4ba501db","qualified_name":"sub_one_zsmul","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a : G) (n : Int),\n  @Eq.{u_3 + 1} G\n    (@HSMul.hSMul.{0, u_3, u_3} Int G G\n      (@instHSMul.{0, u_3} Int G\n        (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n      (@HSub.hSub.{0, 0, 0} Int Int Int (@instHSub.{0} Int Int.instSub) n\n        (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1))))\n      a)\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      (@HSMul.hSMul.{0, u_3, u_3} Int G G\n        (@instHSMul.{0, u_3} Int G\n          (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n        n a)\n      (@Neg.neg.{u_3} G\n        (@NegZeroClass.toNeg.{u_3} G\n          (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n        a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-bc7bce60e802bbbbf385408b957e65daf5de194d9b8f28bad29494eae3bac22b","qualified_name":"sub_right_comm","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a b)\n      c)\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-4c4e3ee4339053f197132fb45e244a3edb4b757652b906260c0c248409320d73","qualified_name":"sub_right_inj","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {a b c : G},\n  Iff\n    (@Eq.{u_3 + 1} G\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a b)\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a c))\n    (@Eq.{u_3 + 1} G b c)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-8a770b1fd6516c7104c9256851e1d2f52e729c8aa4f28e8340daad24c2d83276","qualified_name":"sub_right_injective","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {b : G},\n  @Function.Injective.{u_3 + 1, u_3 + 1} G G fun a =>\n    @HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) b a"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ac8ddfb5401c061a06e7c337ec242d49ecc6f8171dc3a10f507fb5137e03e39f","qualified_name":"sub_sub","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a b)\n      c)\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      a\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α\n                  (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n        b c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-6bee2cadb4cbdeddd74866c3bcf117ff589a41856d513ff888ecc1c4d0a9c7e7","qualified_name":"sub_sub_cancel","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G\n        (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n      a\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        a b))\n    b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-0c228c891bd67940dead3346fc610dc83159ae6af40380ed39bea7760a307473","qualified_name":"sub_sub_cancel_left","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G\n        (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        a b)\n      a)\n    (@Neg.neg.{u_3} G\n      (@NegZeroClass.toNeg.{u_3} G\n        (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n          (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G\n            (@SubtractionCommMonoid.toSubtractionMonoid.{u_3} G (@AddCommGroup.toDivisionAddCommMonoid.{u_3} G inst)))))\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-be68605a2a9a86edab24b11c0d3da8746938c7b2b7c715e2d38b139c62699f20","qualified_name":"sub_sub_eq_add_sub","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a b c : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))) a\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))) b c))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))\n        a c)\n      b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ebdba99f716297dfd4dd70f0d81d880c8d198b0ac97ca2a848828f3da7ea47b5","qualified_name":"sub_sub_self","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] (a b : G),\n  @Eq.{u_3 + 1} G\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G\n        (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n      a\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        a b))\n    b"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-57f6df98d164d03dbc39d76314f19a54f0538fa05d7f0c21dc475527642ce5b8","qualified_name":"sub_sub_sub_cancel_left","statement":"∀ {G : Type u_3} [inst : AddCommGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G\n        (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        c a)\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G\n          (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n        c b))\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G\n        (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G (@AddCommGroup.toAddGroup.{u_3} G inst))))\n      b a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5b289bdc0472a13912f5e8006b61743aec5809cf7d8f4e95e17a6beb1f3d0506","qualified_name":"sub_sub_sub_cancel_right","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a b c : G),\n  @Eq.{u_3 + 1} G\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst)))\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a c)\n      (@HSub.hSub.{u_3, u_3, u_3} G G G\n        (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) b c))\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))) a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-43ca9207246c6cbc56dac143e6b1178acb5caf246ce9024568370a78054fed13","qualified_name":"sub_sub_sub_comm","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b c d : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a b)\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        c d))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a c)\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        b d))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d7a2387e3ea5a59376bfadcca3974023ff3e47affcbb6660a1651c3eb66c5170","qualified_name":"sub_sub_sub_eq","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b c d : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a b)\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        c d))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α\n                  (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n        a d)\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α\n                  (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n        b c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-bd0e424309cb34026de9e5300b5716dfeca489fb425ca6c95f5ab16a32a427ac","qualified_name":"sub_zero","statement":"∀ {G : Type u_3} [inst : SubNegZeroMonoid.{u_3} G] (a : G),\n  @Eq.{u_3 + 1} G\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@SubNegZeroMonoid.toSubNegMonoid.{u_3} G inst))) a\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G (@NegZeroClass.toZero.{u_3} G (@SubNegZeroMonoid.toNegZeroClass.{u_3} G inst)))))\n    a"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a16638d04cb7f6c666616ded6fbd93d3f0f42a625349ef0a58348b439195cf1c","qualified_name":"sub_zsmul","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a : G) (m n : Int),\n  @Eq.{u_3 + 1} G\n    (@HSMul.hSMul.{0, u_3, u_3} Int G G\n      (@instHSMul.{0, u_3} Int G\n        (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n      (@HSub.hSub.{0, 0, 0} Int Int Int (@instHSub.{0} Int Int.instSub) m n) a)\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      (@HSMul.hSMul.{0, u_3, u_3} Int G G\n        (@instHSMul.{0, u_3} Int G\n          (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n        m a)\n      (@Neg.neg.{u_3} G\n        (@NegZeroClass.toNeg.{u_3} G\n          (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n            (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n        (@HSMul.hSMul.{0, u_3, u_3} Int G G\n          (@instHSMul.{0, u_3} Int G\n            (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n          n a)))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-7667bfb45c2611ad7a2f0a2ecbf9da297ad747680e7817ca4cbc85e8d5c2119b","qualified_name":"subrelation_iff_le","statement":"∀ {α : Type u_2} {r s : α → α → Prop},\n  Iff (@Subrelation.{u_2 + 1} α r s)\n    (@LE.le.{u_2} (α → α → Prop)\n      (@Pi.hasLe.{u_2, u_2} α (fun a => α → Prop) fun i => @Pi.hasLe.{u_2, 0} α (fun a => Prop) fun i => «Prop».le) r s)"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-d4d091ccc92fd8a451dbf361437a84d71606dda05229f9bc5b1e0ea61b10fc94","qualified_name":"succ_ne_self","statement":"∀ {α : Type u_3} [inst : NonAssocRing.{u_3} α] [Nontrivial.{u_3} α] (a : α),\n  @Ne.{u_3 + 1} α\n    (@HAdd.hAdd.{u_3, u_3, u_3} α α α\n      (@instHAdd.{u_3} α\n        (@Distrib.toAdd.{u_3} α\n          (@NonUnitalNonAssocSemiring.toDistrib.{u_3} α\n            (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} α\n              (@NonAssocRing.toNonUnitalNonAssocRing.{u_3} α inst)))))\n      a\n      (@OfNat.ofNat.{u_3} α (nat_lit 1)\n        (@One.toOfNat1.{u_3} α\n          (@AddMonoidWithOne.toOne.{u_3} α\n            (@AddGroupWithOne.toAddMonoidWithOne.{u_3} α\n              (@AddCommGroupWithOne.toAddGroupWithOne.{u_3} α (@NonAssocRing.toAddCommGroupWithOne.{u_3} α inst)))))))\n    a"},{"kind":"theorem","module":"Mathlib.Topology.Basic","object_id":"object-5979b5d5a649b3ebbf7537405dc068d2d7053d05db373d845da91dfff9304533","qualified_name":"tendsto_nhds_limUnder","statement":"∀ {X : Type u} {α : Type u_1} [inst : TopologicalSpace.{u} X] {f : Filter.{u_1} α} {g : α → X}\n  (h : ∃ x, @Filter.Tendsto.{u_1, u} α X g f (@nhds.{u} X inst x)),\n  @Filter.Tendsto.{u_1, u} α X g f (@nhds.{u} X inst (@Filter.limUnder.{u, u_1} X inst α ⋯ f g))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-b69c8b064d46383ecda3d740a19ab47dd89ecd21d599b3c0b45358e1032cb30f","qualified_name":"update_le_iff","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : DecidableEq.{u_1 + 1} ι] [inst_1 : (i : ι) → Preorder.{u_4} (π i)]\n  {x y : (i : ι) → π i} {i : ι} {a : π i},\n  Iff\n    (@LE.le.{max u_1 u_4} ((i : ι) → π i) (@Pi.hasLe.{u_1, u_4} ι π fun i => @Preorder.toLE.{u_4} (π i) (inst_1 i))\n      (@Function.update.{u_1 + 1, u_4 + 1} ι π inst y i a) x)\n    (And (@LE.le.{u_4} (π i) (@Preorder.toLE.{u_4} (π i) (inst_1 i)) a (x i))\n      (∀ (j : ι), @Ne.{u_1 + 1} ι j i → @LE.le.{u_4} (π j) (@Preorder.toLE.{u_4} (π j) (inst_1 j)) (y j) (x j)))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-ac01d9c44669d3b852dedd9ff56ccf6e81d68dc76f6b3a51cb1458347275ff0b","qualified_name":"update_le_self_iff","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : DecidableEq.{u_1 + 1} ι] [inst_1 : (i : ι) → Preorder.{u_4} (π i)]\n  {x : (i : ι) → π i} {i : ι} {a : π i},\n  Iff\n    (@LE.le.{max u_1 u_4} ((i : ι) → π i) (@Pi.hasLe.{u_1, u_4} ι π fun i => @Preorder.toLE.{u_4} (π i) (inst_1 i))\n      (@Function.update.{u_1 + 1, u_4 + 1} ι π inst x i a) x)\n    (@LE.le.{u_4} (π i) (@Preorder.toLE.{u_4} (π i) (inst_1 i)) a (x i))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-2193d621129c846da3c7310c1122e54ec2986ab5a5b5f5cffb767031b7e50ecd","qualified_name":"update_le_update_iff","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : DecidableEq.{u_1 + 1} ι] [inst_1 : (i : ι) → Preorder.{u_4} (π i)]\n  {x y : (i : ι) → π i} {i : ι} {a b : π i},\n  Iff\n    (@LE.le.{max u_1 u_4} ((a : ι) → π a) (@Pi.hasLe.{u_1, u_4} ι π fun i => @Preorder.toLE.{u_4} (π i) (inst_1 i))\n      (@Function.update.{u_1 + 1, u_4 + 1} ι π inst x i a) (@Function.update.{u_1 + 1, u_4 + 1} ι π inst y i b))\n    (And (@LE.le.{u_4} (π i) (@Preorder.toLE.{u_4} (π i) (inst_1 i)) a b)\n      (∀ (j : ι), @Ne.{u_1 + 1} ι j i → @LE.le.{u_4} (π j) (@Preorder.toLE.{u_4} (π j) (inst_1 j)) (x j) (y j)))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-a2c603d2d72a8b8f230a97e22ffe2f896a438c84f7ce076bea52ef56247d96c8","qualified_name":"update_le_update_iff'","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : DecidableEq.{u_1 + 1} ι] [inst_1 : (i : ι) → Preorder.{u_4} (π i)]\n  {x : (i : ι) → π i} {i : ι} {a b : π i},\n  Iff\n    (@LE.le.{max u_1 u_4} ((a : ι) → π a) (@Pi.hasLe.{u_1, u_4} ι π fun i => @Preorder.toLE.{u_4} (π i) (inst_1 i))\n      (@Function.update.{u_1 + 1, u_4 + 1} ι π inst x i a) (@Function.update.{u_1 + 1, u_4 + 1} ι π inst x i b))\n    (@LE.le.{u_4} (π i) (@Preorder.toLE.{u_4} (π i) (inst_1 i)) a b)"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-4ffd4301136b1938c09a62589021c2eabd4fb90d6d617e7e1d1ff491796b442c","qualified_name":"update_lt_self_iff","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : DecidableEq.{u_1 + 1} ι] [inst_1 : (i : ι) → Preorder.{u_4} (π i)]\n  {x : (i : ι) → π i} {i : ι} {a : π i},\n  Iff\n    (@LT.lt.{max u_1 u_4} ((i : ι) → π i)\n      (@Preorder.toLT.{max u_1 u_4} ((i : ι) → π i) (@Pi.preorder.{u_1, u_4} ι π inst_1))\n      (@Function.update.{u_1 + 1, u_4 + 1} ι π inst x i a) x)\n    (@LT.lt.{u_4} (π i) (@Preorder.toLT.{u_4} (π i) (inst_1 i)) a (x i))"},{"kind":"theorem","module":"Mathlib.Order.Basic","object_id":"object-e445606784457f63ffa8db7444e710301f0136f98bda6478efa20df1ffa7fdc4","qualified_name":"update_lt_update_iff","statement":"∀ {ι : Type u_1} {π : ι → Type u_4} [inst : DecidableEq.{u_1 + 1} ι] [inst_1 : (i : ι) → Preorder.{u_4} (π i)]\n  {x : (i : ι) → π i} {i : ι} {a b : π i},\n  Iff\n    (@LT.lt.{max u_1 u_4} ((a : ι) → π a)\n      (@Preorder.toLT.{max u_1 u_4} ((a : ι) → π a) (@Pi.preorder.{u_1, u_4} ι π inst_1))\n      (@Function.update.{u_1 + 1, u_4 + 1} ι π inst x i a) (@Function.update.{u_1 + 1, u_4 + 1} ι π inst x i b))\n    (@LT.lt.{u_4} (π i) (@Preorder.toLT.{u_4} (π i) (inst_1 i)) a b)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-57a8dfdd37bf25aaaa638ce3f4aeb8f48d61888f247c7d445603b7ffe0fb579a","qualified_name":"vadd_dite","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : VAdd.{u_2, u_1} β α] (p : Prop) [inst_1 : Decidable p] (a : p → α)\n  (b : Not p → α) (c : β),\n  @Eq.{u_1 + 1} α\n    (@HVAdd.hVAdd.{u_2, u_1, u_1} β α α (@instHVAdd.{u_2, u_1} β α inst) c\n      (@dite.{u_1 + 1} α p inst_1 (fun h => a h) fun h => b h))\n    (@dite.{u_1 + 1} α p inst_1 (fun h => @HVAdd.hVAdd.{u_2, u_1, u_1} β α α (@instHVAdd.{u_2, u_1} β α inst) c (a h))\n      fun h => @HVAdd.hVAdd.{u_2, u_1, u_1} β α α (@instHVAdd.{u_2, u_1} β α inst) c (b h))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-3872e9b393a80a860e2d62e43cb1840a4bba2ed28ad26776658103adde80e0f9","qualified_name":"vadd_ite","statement":"∀ {α : Type u_1} {β : Type u_2} [inst : VAdd.{u_2, u_1} β α] (p : Prop) [inst_1 : Decidable p] (a b : α) (c : β),\n  @Eq.{u_1 + 1} α\n    (@HVAdd.hVAdd.{u_2, u_1, u_1} β α α (@instHVAdd.{u_2, u_1} β α inst) c (@ite.{u_1 + 1} α p inst_1 a b))\n    (@ite.{u_1 + 1} α p inst_1 (@HVAdd.hVAdd.{u_2, u_1, u_1} β α α (@instHVAdd.{u_2, u_1} β α inst) c a)\n      (@HVAdd.hVAdd.{u_2, u_1, u_1} β α α (@instHVAdd.{u_2, u_1} β α inst) c b))"},{"kind":"theorem","module":"Mathlib.Algebra.Ring.Basic","object_id":"object-ce1fc4035d8379b7d8f7b45fe15a609529acffd1557ed930a3bff243d4178d76","qualified_name":"vieta_formula_quadratic","statement":"∀ {α : Type u_3} [inst : NonUnitalCommRing.{u_3} α] {b c x : α},\n  @Eq.{u_3 + 1} α\n      (@HAdd.hAdd.{u_3, u_3, u_3} α α α\n        (@instHAdd.{u_3} α\n          (@Distrib.toAdd.{u_3} α\n            (@NonUnitalNonAssocSemiring.toDistrib.{u_3} α\n              (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} α\n                (@NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing.{u_3} α\n                  (@NonUnitalCommRing.toNonUnitalNonAssocCommRing.{u_3} α inst))))))\n        (@HSub.hSub.{u_3, u_3, u_3} α α α\n          (@instHSub.{u_3} α\n            (@SubNegMonoid.toSub.{u_3} α\n              (@AddGroup.toSubNegMonoid.{u_3} α\n                (@AddCommGroup.toAddGroup.{u_3} α\n                  (@NonUnitalNonAssocRing.toAddCommGroup.{u_3} α\n                    (@NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing.{u_3} α\n                      (@NonUnitalCommRing.toNonUnitalNonAssocCommRing.{u_3} α inst)))))))\n          (@HMul.hMul.{u_3, u_3, u_3} α α α\n            (@instHMul.{u_3} α\n              (@Distrib.toMul.{u_3} α\n                (@NonUnitalNonAssocSemiring.toDistrib.{u_3} α\n                  (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} α\n                    (@NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing.{u_3} α\n                      (@NonUnitalCommRing.toNonUnitalNonAssocCommRing.{u_3} α inst))))))\n            x x)\n          (@HMul.hMul.{u_3, u_3, u_3} α α α\n            (@instHMul.{u_3} α\n              (@Distrib.toMul.{u_3} α\n                (@NonUnitalNonAssocSemiring.toDistrib.{u_3} α\n                  (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} α\n                    (@NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing.{u_3} α\n                      (@NonUnitalCommRing.toNonUnitalNonAssocCommRing.{u_3} α inst))))))\n            b x))\n        c)\n      (@OfNat.ofNat.{u_3} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} α\n          (@MulZeroClass.toZero.{u_3} α\n            (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} α\n              (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} α\n                (@NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing.{u_3} α\n                  (@NonUnitalCommRing.toNonUnitalNonAssocCommRing.{u_3} α inst))))))) →\n    ∃ y,\n      And\n        (@Eq.{u_3 + 1} α\n          (@HAdd.hAdd.{u_3, u_3, u_3} α α α\n            (@instHAdd.{u_3} α\n              (@Distrib.toAdd.{u_3} α\n                (@NonUnitalNonAssocSemiring.toDistrib.{u_3} α\n                  (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} α\n                    (@NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing.{u_3} α\n                      (@NonUnitalCommRing.toNonUnitalNonAssocCommRing.{u_3} α inst))))))\n            (@HSub.hSub.{u_3, u_3, u_3} α α α\n              (@instHSub.{u_3} α\n                (@SubNegMonoid.toSub.{u_3} α\n                  (@AddGroup.toSubNegMonoid.{u_3} α\n                    (@AddCommGroup.toAddGroup.{u_3} α\n                      (@NonUnitalNonAssocRing.toAddCommGroup.{u_3} α\n                        (@NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing.{u_3} α\n                          (@NonUnitalCommRing.toNonUnitalNonAssocCommRing.{u_3} α inst)))))))\n              (@HMul.hMul.{u_3, u_3, u_3} α α α\n                (@instHMul.{u_3} α\n                  (@Distrib.toMul.{u_3} α\n                    (@NonUnitalNonAssocSemiring.toDistrib.{u_3} α\n                      (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} α\n                        (@NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing.{u_3} α\n                          (@NonUnitalCommRing.toNonUnitalNonAssocCommRing.{u_3} α inst))))))\n                y y)\n              (@HMul.hMul.{u_3, u_3, u_3} α α α\n                (@instHMul.{u_3} α\n                  (@Distrib.toMul.{u_3} α\n                    (@NonUnitalNonAssocSemiring.toDistrib.{u_3} α\n                      (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} α\n                        (@NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing.{u_3} α\n                          (@NonUnitalCommRing.toNonUnitalNonAssocCommRing.{u_3} α inst))))))\n                b y))\n            c)\n          (@OfNat.ofNat.{u_3} α (nat_lit 0)\n            (@Zero.toOfNat0.{u_3} α\n              (@MulZeroClass.toZero.{u_3} α\n                (@NonUnitalNonAssocSemiring.toMulZeroClass.{u_3} α\n                  (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} α\n                    (@NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing.{u_3} α\n                      (@NonUnitalCommRing.toNonUnitalNonAssocCommRing.{u_3} α inst))))))))\n        (And\n          (@Eq.{u_3 + 1} α\n            (@HAdd.hAdd.{u_3, u_3, u_3} α α α\n              (@instHAdd.{u_3} α\n                (@Distrib.toAdd.{u_3} α\n                  (@NonUnitalNonAssocSemiring.toDistrib.{u_3} α\n                    (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} α\n                      (@NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing.{u_3} α\n                        (@NonUnitalCommRing.toNonUnitalNonAssocCommRing.{u_3} α inst))))))\n              x y)\n            b)\n          (@Eq.{u_3 + 1} α\n            (@HMul.hMul.{u_3, u_3, u_3} α α α\n              (@instHMul.{u_3} α\n                (@Distrib.toMul.{u_3} α\n                  (@NonUnitalNonAssocSemiring.toDistrib.{u_3} α\n                    (@NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u_3} α\n                      (@NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing.{u_3} α\n                        (@NonUnitalCommRing.toNonUnitalNonAssocCommRing.{u_3} α inst))))))\n              x y)\n            c))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-986f90c6aa80e75ff7514c1e79e125637096e92281f2ed07690ff3363144dd6e","qualified_name":"zero_add_eq_id","statement":"∀ {M : Type u_4} [inst : AddZeroClass.{u_4} M],\n  @Eq.{u_4 + 1} (M → M)\n    (fun x =>\n      @HAdd.hAdd.{u_4, u_4, u_4} M M M\n        (@instHAdd.{u_4} M (@AddZero.toAdd.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst)))\n        (@OfNat.ofNat.{u_4} M (nat_lit 0)\n          (@Zero.toOfNat0.{u_4} M (@AddZero.toZero.{u_4} M (@AddZeroClass.toAddZero.{u_4} M inst))))\n        x)\n    (@id.{u_4 + 1} M)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2fe2024b92cea7aa3e111f6deb79cb454ca2213771f015f3a05bf13ca6eb3964","qualified_name":"zero_eq_neg","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] {a : α},\n  Iff\n    (@Eq.{u_1 + 1} α\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@NegZeroClass.toZero.{u_1} α\n            (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))))\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))\n        a))\n    (@Eq.{u_1 + 1} α a\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@NegZeroClass.toZero.{u_1} α\n            (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst))))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-4fb3a6e1caf1e5538fad39e1dc3e4ef2dcbc66b746846fafb174071bf2986643","qualified_name":"zero_sub_add_eq_sub","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        (@OfNat.ofNat.{u_1} α (nat_lit 0)\n          (@Zero.toOfNat0.{u_1} α\n            (@NegZeroClass.toZero.{u_1} α\n              (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n                (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))))\n        a)\n      b)\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      b a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-9c6754cd8e2723f75405edb7419b1b300bf34761656688a2aa91bf45b2c24b01","qualified_name":"zero_sub_add_zero_sub","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        (@OfNat.ofNat.{u_1} α (nat_lit 0)\n          (@Zero.toOfNat0.{u_1} α\n            (@NegZeroClass.toZero.{u_1} α\n              (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n                (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))))\n        a)\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        (@OfNat.ofNat.{u_1} α (nat_lit 0)\n          (@Zero.toOfNat0.{u_1} α\n            (@NegZeroClass.toZero.{u_1} α\n              (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n                (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))))\n        b))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@NegZeroClass.toZero.{u_1} α\n            (@SubNegZeroMonoid.toNegZeroClass.{u_1} α\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α\n                (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))))\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α\n                  (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n        a b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d3eb7943e5f43491f91b6f71363e9ba26d764def0ab91de257cad96fec9c2c56","qualified_name":"zero_sub_add_zero_sub_rev","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 0)\n          (@Zero.toOfNat0.{u_1} α\n            (@AddZero.toZero.{u_1} α\n              (@AddZeroClass.toAddZero.{u_1} α\n                (@AddMonoid.toAddZeroClass.{u_1} α\n                  (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))))\n        a)\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 0)\n          (@Zero.toOfNat0.{u_1} α\n            (@AddZero.toZero.{u_1} α\n              (@AddZeroClass.toAddZero.{u_1} α\n                (@AddMonoid.toAddZeroClass.{u_1} α\n                  (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))))\n        b))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@AddZero.toZero.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))))\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))))\n        b a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-0a1fab62d57d27241e4a971d46650ebd105089acc827d0081aaa7cf3effb62cf","qualified_name":"zero_sub_sub","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a b : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@AddZero.toZero.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))) a b))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))) b a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-03d5af396e95fcdb412ec3e7878a489472f4747bb00376d530b17dca421723ad","qualified_name":"zero_sub_zero","statement":"∀ {G : Type u_3} [inst : SubNegZeroMonoid.{u_3} G],\n  @Eq.{u_3 + 1} G\n    (@HSub.hSub.{u_3, u_3, u_3} G G G\n      (@instHSub.{u_3} G (@SubNegMonoid.toSub.{u_3} G (@SubNegZeroMonoid.toSubNegMonoid.{u_3} G inst)))\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G (@NegZeroClass.toZero.{u_3} G (@SubNegZeroMonoid.toNegZeroClass.{u_3} G inst))))\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G (@NegZeroClass.toZero.{u_3} G (@SubNegZeroMonoid.toNegZeroClass.{u_3} G inst)))))\n    (@OfNat.ofNat.{u_3} G (nat_lit 0)\n      (@Zero.toOfNat0.{u_3} G (@NegZeroClass.toZero.{u_3} G (@SubNegZeroMonoid.toNegZeroClass.{u_3} G inst))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-961a3f506ea4d846d3de4810a1851df2a6462a2f772b6055ebc38e2352c91c6c","qualified_name":"zero_sub_zero_sub","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a : α),\n  @Eq.{u_1 + 1} α\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@AddZero.toZero.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))))\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 0)\n          (@Zero.toOfNat0.{u_1} α\n            (@AddZero.toZero.{u_1} α\n              (@AddZeroClass.toAddZero.{u_1} α\n                (@AddMonoid.toAddZeroClass.{u_1} α\n                  (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))))\n        a))\n    a"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-57ca985c26f6174dda4172566c8fc95975b11194a02b6da0e26a522fbb9d55f8","qualified_name":"zpow_add","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a : G) (m n : Int),\n  @Eq.{u_3 + 1} G\n    (@HPow.hPow.{u_3, 0, u_3} G Int G\n      (@instHPow.{u_3, 0} G Int\n        (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n      a (@HAdd.hAdd.{0, 0, 0} Int Int Int (@instHAdd.{0} Int Int.instAdd) m n))\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        a m)\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        a n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-385433159bcd468eca82f01f5d022f03b485c99cb8212ad956fc5169401f46a8","qualified_name":"zpow_add_one","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a : G) (n : Int),\n  @Eq.{u_3 + 1} G\n    (@HPow.hPow.{u_3, 0, u_3} G Int G\n      (@instHPow.{u_3, 0} G Int\n        (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n      a\n      (@HAdd.hAdd.{0, 0, 0} Int Int Int (@instHAdd.{0} Int Int.instAdd) n\n        (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1)))))\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        a n)\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-9965f65781b4b853af0c882f68321b4a20dc0d4403a6fc8d80e55394b7b2c791","qualified_name":"zpow_comm","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a : α) (m n : Int),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, 0, u_1} α Int α\n      (@instHPow.{u_1, 0} α Int\n        (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n      (@HPow.hPow.{u_1, 0, u_1} α Int α\n        (@instHPow.{u_1, 0} α Int\n          (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n        a m)\n      n)\n    (@HPow.hPow.{u_1, 0, u_1} α Int α\n      (@instHPow.{u_1, 0} α Int\n        (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n      (@HPow.hPow.{u_1, 0, u_1} α Int α\n        (@instHPow.{u_1, 0} α Int\n          (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n        a n)\n      m)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-48188094ffd85d3362a5c05e365d3f30fadf1807568d90ea427b0b70ceb07d3b","qualified_name":"zpow_eq_inv_pow_natAbs","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a : α) {n : Int},\n  @LE.le.{0} Int Int.instLEInt n (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0))) →\n    @Eq.{u_1 + 1} α\n      (@HPow.hPow.{u_1, 0, u_1} α Int α\n        (@instHPow.{u_1, 0} α Int\n          (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n        a n)\n      (@HPow.hPow.{u_1, 0, u_1} α Nat α\n        (@instHPow.{u_1, 0} α Nat\n          (@NPow.toPow.{u_1} α\n            (@Monoid.toNPow.{u_1} α (@DivInvMonoid.toMonoid.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst)))))\n        (@Inv.inv.{u_1} α\n          (@InvOneClass.toInv.{u_1} α\n            (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))\n          a)\n        n.natAbs)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-36f373db391fdb67ebfcb17fa69b77be72bdacf53aeaf9ffc141e52323042e4c","qualified_name":"zpow_eq_zpow_emod","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {x : G} (m : Int) {n : Int},\n  @Eq.{u_3 + 1} G\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        x n)\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))) →\n    @Eq.{u_3 + 1} G\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        x m)\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        x (@HMod.hMod.{0, 0, 0} Int Int Int (@instHMod.{0} Int Int.instMod) m n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-caa352677435fa77f4ed5967265ef3b83bb986a087b5eaba5f65a32d85856007","qualified_name":"zpow_eq_zpow_emod'","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {x : G} (m : Int) {n : Nat},\n  @Eq.{u_3 + 1} G\n      (@HPow.hPow.{u_3, 0, u_3} G Nat G\n        (@instHPow.{u_3, 0} G Nat\n          (@NPow.toPow.{u_3} G\n            (@Monoid.toNPow.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))))\n        x n)\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))) →\n    @Eq.{u_3 + 1} G\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        x m)\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        x (@HMod.hMod.{0, 0, 0} Int Int Int (@instHMod.{0} Int Int.instMod) m (@Nat.cast.{0} Int instNatCastInt n)))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-5fc9f91c1c011532b8cee7accb2d30739eb44012ce1c502fc1c5b8a7d6f0a136","qualified_name":"zpow_induction_left","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {g : G} {P : G → Prop},\n  P\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))) →\n    (∀ (a : G),\n        P a →\n          P\n            (@HMul.hMul.{u_3, u_3, u_3} G G G\n              (@instHMul.{u_3} G\n                (@MulOne.toMul.{u_3} G\n                  (@MulOneClass.toMulOne.{u_3} G\n                    (@Monoid.toMulOneClass.{u_3} G\n                      (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n              g a)) →\n      (∀ (a : G),\n          P a →\n            P\n              (@HMul.hMul.{u_3, u_3, u_3} G G G\n                (@instHMul.{u_3} G\n                  (@MulOne.toMul.{u_3} G\n                    (@MulOneClass.toMulOne.{u_3} G\n                      (@Monoid.toMulOneClass.{u_3} G\n                        (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n                (@Inv.inv.{u_3} G\n                  (@InvOneClass.toInv.{u_3} G\n                    (@DivInvOneMonoid.toInvOneClass.{u_3} G\n                      (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n                  g)\n                a)) →\n        ∀ (n : Int),\n          P\n            (@HPow.hPow.{u_3, 0, u_3} G Int G\n              (@instHPow.{u_3, 0} G Int\n                (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n              g n)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-4f1f71fd5f90f9c934de6c519f0c9467d0eeabb806f220632155d8431b9a606e","qualified_name":"zpow_induction_right","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] {g : G} {P : G → Prop},\n  P\n      (@OfNat.ofNat.{u_3} G (nat_lit 1)\n        (@One.toOfNat1.{u_3} G\n          (@InvOneClass.toOne.{u_3} G\n            (@DivInvOneMonoid.toInvOneClass.{u_3} G\n              (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst)))))) →\n    (∀ (a : G),\n        P a →\n          P\n            (@HMul.hMul.{u_3, u_3, u_3} G G G\n              (@instHMul.{u_3} G\n                (@MulOne.toMul.{u_3} G\n                  (@MulOneClass.toMulOne.{u_3} G\n                    (@Monoid.toMulOneClass.{u_3} G\n                      (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n              a g)) →\n      (∀ (a : G),\n          P a →\n            P\n              (@HMul.hMul.{u_3, u_3, u_3} G G G\n                (@instHMul.{u_3} G\n                  (@MulOne.toMul.{u_3} G\n                    (@MulOneClass.toMulOne.{u_3} G\n                      (@Monoid.toMulOneClass.{u_3} G\n                        (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n                a\n                (@Inv.inv.{u_3} G\n                  (@InvOneClass.toInv.{u_3} G\n                    (@DivInvOneMonoid.toInvOneClass.{u_3} G\n                      (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n                  g))) →\n        ∀ (n : Int),\n          P\n            (@HPow.hPow.{u_3, 0, u_3} G Int G\n              (@instHPow.{u_3, 0} G Int\n                (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n              g n)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-ac12f9626c64d6f8da5cc5323283e6dfb246a21b825eb105209681379cb48943","qualified_name":"zpow_iterate","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (k : Int) (n : Nat),\n  @Eq.{u_3 + 1} (G → G)\n    (@Nat.iterate.{u_3 + 1} G\n      (fun x =>\n        @HPow.hPow.{u_3, 0, u_3} G Int G\n          (@instHPow.{u_3, 0} G Int\n            (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n          x k)\n      n)\n    fun x =>\n    @HPow.hPow.{u_3, 0, u_3} G Int G\n      (@instHPow.{u_3, 0} G Int\n        (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n      x (@HPow.hPow.{0, 0, 0} Int Nat Int (@instHPow.{0, 0} Int Nat (@instPowNat.{0} Int Int.instNatPow)) k n)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-3f1bc926efcded3c0b18f56ba16333431510bb11b4d12f0ab873f9783f2293a0","qualified_name":"zpow_mul","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a : α) (m n : Int),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, 0, u_1} α Int α\n      (@instHPow.{u_1, 0} α Int\n        (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n      a (@HMul.hMul.{0, 0, 0} Int Int Int (@instHMul.{0} Int Int.instMul) m n))\n    (@HPow.hPow.{u_1, 0, u_1} α Int α\n      (@instHPow.{u_1, 0} α Int\n        (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n      (@HPow.hPow.{u_1, 0, u_1} α Int α\n        (@instHPow.{u_1, 0} α Int\n          (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n        a m)\n      n)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-2c45ec4f58f7c9246662333f0f5b69aaa50a5c2c1713a01ab3f4bda04878b53c","qualified_name":"zpow_mul'","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a : α) (m n : Int),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, 0, u_1} α Int α\n      (@instHPow.{u_1, 0} α Int\n        (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n      a (@HMul.hMul.{0, 0, 0} Int Int Int (@instHMul.{0} Int Int.instMul) m n))\n    (@HPow.hPow.{u_1, 0, u_1} α Int α\n      (@instHPow.{u_1, 0} α Int\n        (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n      (@HPow.hPow.{u_1, 0, u_1} α Int α\n        (@instHPow.{u_1, 0} α Int\n          (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n        a n)\n      m)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d6ce63312b6ccd6aaab2bcbaefa96177b0814dbe942de79c21e98d586fbbe855","qualified_name":"zpow_mul_comm","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a : G) (m n : Int),\n  @Eq.{u_3 + 1} G\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        a m)\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        a n))\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        a n)\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        a m))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-4ec4ba74aa4c7b8fc7f80987398c3ddde7a62622dc95b0965c6fa6b2ceb95513","qualified_name":"zpow_natCast_sub_natCast","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a : G) (m n : Nat),\n  @Eq.{u_3 + 1} G\n    (@HPow.hPow.{u_3, 0, u_3} G Int G\n      (@instHPow.{u_3, 0} G Int\n        (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n      a\n      (@HSub.hSub.{0, 0, 0} Int Int Int (@instHSub.{0} Int Int.instSub) (@Nat.cast.{0} Int instNatCastInt m)\n        (@Nat.cast.{0} Int instNatCastInt n)))\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))\n      (@HPow.hPow.{u_3, 0, u_3} G Nat G\n        (@instHPow.{u_3, 0} G Nat\n          (@NPow.toPow.{u_3} G\n            (@Monoid.toNPow.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))))\n        a m)\n      (@HPow.hPow.{u_3, 0, u_3} G Nat G\n        (@instHPow.{u_3, 0} G Nat\n          (@NPow.toPow.{u_3} G\n            (@Monoid.toNPow.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))))\n        a n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a0831206838edb89d5dba6f58eabeea979d8175b335fd4d380a6ef814533d84c","qualified_name":"zpow_natCast_sub_one","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a : G) (n : Nat),\n  @Eq.{u_3 + 1} G\n    (@HPow.hPow.{u_3, 0, u_3} G Int G\n      (@instHPow.{u_3, 0} G Int\n        (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n      a\n      (@HSub.hSub.{0, 0, 0} Int Int Int (@instHSub.{0} Int Int.instSub) (@Nat.cast.{0} Int instNatCastInt n)\n        (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1)))))\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))\n      (@HPow.hPow.{u_3, 0, u_3} G Nat G\n        (@instHPow.{u_3, 0} G Nat\n          (@NPow.toPow.{u_3} G\n            (@Monoid.toNPow.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))))\n        a n)\n      a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-9452d0e0c8db296372fe09d32b46168f9a9b14ba7bde3a3bb736e049abead0f4","qualified_name":"zpow_neg","statement":"∀ {α : Type u_1} [inst : DivisionMonoid.{u_1} α] (a : α) (n : Int),\n  @Eq.{u_1 + 1} α\n    (@HPow.hPow.{u_1, 0, u_1} α Int α\n      (@instHPow.{u_1, 0} α Int\n        (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n      a (@Neg.neg.{0} Int Int.instNegInt n))\n    (@Inv.inv.{u_1} α\n      (@InvOneClass.toInv.{u_1} α\n        (@DivInvOneMonoid.toInvOneClass.{u_1} α (@DivisionMonoid.toDivInvOneMonoid.{u_1} α inst)))\n      (@HPow.hPow.{u_1, 0, u_1} α Int α\n        (@instHPow.{u_1, 0} α Int\n          (@ZPow.toPow.{u_1} α (@DivInvMonoid.toZPow.{u_1} α (@DivisionMonoid.toDivInvMonoid.{u_1} α inst))))\n        a n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-e3e363715c9f74fd572c2dd94209b1582c24695780abc79728b8f5f657dc53dc","qualified_name":"zpow_one_add","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a : G) (n : Int),\n  @Eq.{u_3 + 1} G\n    (@HPow.hPow.{u_3, 0, u_3} G Int G\n      (@instHPow.{u_3, 0} G Int\n        (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n      a\n      (@HAdd.hAdd.{0, 0, 0} Int Int Int (@instHAdd.{0} Int Int.instAdd)\n        (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1))) n))\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      a\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        a n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-7869cc2f55c39a5b9af0c0571fcf0985211d3812478d65bed28656d3a73005af","qualified_name":"zpow_one_sub_natCast","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a : G) (n : Nat),\n  @Eq.{u_3 + 1} G\n    (@HPow.hPow.{u_3, 0, u_3} G Int G\n      (@instHPow.{u_3, 0} G Int\n        (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n      a\n      (@HSub.hSub.{0, 0, 0} Int Int Int (@instHSub.{0} Int Int.instSub)\n        (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1))) (@Nat.cast.{0} Int instNatCastInt n)))\n    (@HDiv.hDiv.{u_3, u_3, u_3} G G G\n      (@instHDiv.{u_3} G (@DivInvMonoid.toDiv.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))) a\n      (@HPow.hPow.{u_3, 0, u_3} G Nat G\n        (@instHPow.{u_3, 0} G Nat\n          (@NPow.toPow.{u_3} G\n            (@Monoid.toNPow.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst)))))\n        a n))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-37ffdb670d1bf22d43cf382a4c7dea8748a8ac8d246cbd053110f472db805a53","qualified_name":"zpow_sub","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a : G) (m n : Int),\n  @Eq.{u_3 + 1} G\n    (@HPow.hPow.{u_3, 0, u_3} G Int G\n      (@instHPow.{u_3, 0} G Int\n        (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n      a (@HSub.hSub.{0, 0, 0} Int Int Int (@instHSub.{0} Int Int.instSub) m n))\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        a m)\n      (@Inv.inv.{u_3} G\n        (@InvOneClass.toInv.{u_3} G\n          (@DivInvOneMonoid.toInvOneClass.{u_3} G\n            (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n        (@HPow.hPow.{u_3, 0, u_3} G Int G\n          (@instHPow.{u_3, 0} G Int\n            (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n          a n)))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-9548f07cc25b9895e5646d30e113b30b9921bc5321b2f5ee0f30518de88c2e13","qualified_name":"zpow_sub_one","statement":"∀ {G : Type u_3} [inst : Group.{u_3} G] (a : G) (n : Int),\n  @Eq.{u_3 + 1} G\n    (@HPow.hPow.{u_3, 0, u_3} G Int G\n      (@instHPow.{u_3, 0} G Int\n        (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n      a\n      (@HSub.hSub.{0, 0, 0} Int Int Int (@instHSub.{0} Int Int.instSub) n\n        (@OfNat.ofNat.{0} Int (nat_lit 1) (@instOfNat (nat_lit 1)))))\n    (@HMul.hMul.{u_3, u_3, u_3} G G G\n      (@instHMul.{u_3} G\n        (@MulOne.toMul.{u_3} G\n          (@MulOneClass.toMulOne.{u_3} G\n            (@Monoid.toMulOneClass.{u_3} G (@DivInvMonoid.toMonoid.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))))\n      (@HPow.hPow.{u_3, 0, u_3} G Int G\n        (@instHPow.{u_3, 0} G Int\n          (@ZPow.toPow.{u_3} G (@DivInvMonoid.toZPow.{u_3} G (@Group.toDivInvMonoid.{u_3} G inst))))\n        a n)\n      (@Inv.inv.{u_3} G\n        (@InvOneClass.toInv.{u_3} G\n          (@DivInvOneMonoid.toInvOneClass.{u_3} G\n            (@DivisionMonoid.toDivInvOneMonoid.{u_3} G (@Group.toDivisionMonoid.{u_3} G inst))))\n        a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-a6f66e0a801ed744a4c1b1e11a1a79aec35bb4b33aa74c12682f7c85ec803adf","qualified_name":"zsmul_add","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b : α) (n : Int),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{0, u_1, u_1} Int α α\n      (@instHSMul.{0, u_1} Int α\n        (@ZSMul.toSMul.{u_1} α\n          (@SubNegMonoid.toZSMul.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))\n      n\n      (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n        (@instHAdd.{u_1} α\n          (@AddZero.toAdd.{u_1} α\n            (@AddZeroClass.toAddZero.{u_1} α\n              (@AddMonoid.toAddZeroClass.{u_1} α\n                (@SubNegMonoid.toAddMonoid.{u_1} α\n                  (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                    (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n        a b))\n    (@HAdd.hAdd.{u_1, u_1, u_1} α α α\n      (@instHAdd.{u_1} α\n        (@AddZero.toAdd.{u_1} α\n          (@AddZeroClass.toAddZero.{u_1} α\n            (@AddMonoid.toAddZeroClass.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α\n                (@SubtractionMonoid.toSubNegMonoid.{u_1} α\n                  (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))))\n      (@HSMul.hSMul.{0, u_1, u_1} Int α α\n        (@instHSMul.{0, u_1} Int α\n          (@ZSMul.toSMul.{u_1} α\n            (@SubNegMonoid.toZSMul.{u_1} α\n              (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))\n        n a)\n      (@HSMul.hSMul.{0, u_1, u_1} Int α α\n        (@instHSMul.{0, u_1} Int α\n          (@ZSMul.toSMul.{u_1} α\n            (@SubNegMonoid.toZSMul.{u_1} α\n              (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))\n        n b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-9ec640b3645e7ddd37dc7b5307643985c619efd4c3f8b59ee7fd3b58a9fcd456","qualified_name":"zsmul_add_comm","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (a : G) (m n : Int),\n  @Eq.{u_3 + 1} G\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      (@HSMul.hSMul.{0, u_3, u_3} Int G G\n        (@instHSMul.{0, u_3} Int G\n          (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n        m a)\n      (@HSMul.hSMul.{0, u_3, u_3} Int G G\n        (@instHSMul.{0, u_3} Int G\n          (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n        n a))\n    (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n      (@instHAdd.{u_3} G\n        (@AddZero.toAdd.{u_3} G\n          (@AddZeroClass.toAddZero.{u_3} G\n            (@AddMonoid.toAddZeroClass.{u_3} G\n              (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n      (@HSMul.hSMul.{0, u_3, u_3} Int G G\n        (@instHSMul.{0, u_3} Int G\n          (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n        n a)\n      (@HSMul.hSMul.{0, u_3, u_3} Int G G\n        (@instHSMul.{0, u_3} Int G\n          (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n        m a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-9b676ce28f80bfc68bae33d30fa1d453b8700cb08371200ed297bea2f671c8f0","qualified_name":"zsmul_comm","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a : α) (m n : Int),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{0, u_1, u_1} Int α α\n      (@instHSMul.{0, u_1} Int α\n        (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n      n\n      (@HSMul.hSMul.{0, u_1, u_1} Int α α\n        (@instHSMul.{0, u_1} Int α\n          (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n        m a))\n    (@HSMul.hSMul.{0, u_1, u_1} Int α α\n      (@instHSMul.{0, u_1} Int α\n        (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n      m\n      (@HSMul.hSMul.{0, u_1, u_1} Int α α\n        (@instHSMul.{0, u_1} Int α\n          (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n        n a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-3e774f2434e079e9a70512904b9a8fa0ee07b63ab89a65448ed32c0c112331b4","qualified_name":"zsmul_eq_neg_nsmul_natAbs","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a : α) {n : Int},\n  @LE.le.{0} Int Int.instLEInt n (@OfNat.ofNat.{0} Int (nat_lit 0) (@instOfNat (nat_lit 0))) →\n    @Eq.{u_1 + 1} α\n      (@HSMul.hSMul.{0, u_1, u_1} Int α α\n        (@instHSMul.{0, u_1} Int α\n          (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n        n a)\n      (@HSMul.hSMul.{0, u_1, u_1} Nat α α\n        (@instHSMul.{0, u_1} Nat α\n          (@NSMul.toSMul.{u_1} α\n            (@AddMonoid.toNSMul.{u_1} α\n              (@SubNegMonoid.toAddMonoid.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))))\n        n.natAbs\n        (@Neg.neg.{u_1} α\n          (@NegZeroClass.toNeg.{u_1} α\n            (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))\n          a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-56b14751fec15654362199d928311e68fa6269153074c97cf53b4f6f05e025de","qualified_name":"zsmul_induction_left","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {g : G} {P : G → Prop},\n  P\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))) →\n    (∀ (a : G),\n        P a →\n          P\n            (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n              (@instHAdd.{u_3} G\n                (@AddZero.toAdd.{u_3} G\n                  (@AddZeroClass.toAddZero.{u_3} G\n                    (@AddMonoid.toAddZeroClass.{u_3} G\n                      (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n              g a)) →\n      (∀ (a : G),\n          P a →\n            P\n              (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n                (@instHAdd.{u_3} G\n                  (@AddZero.toAdd.{u_3} G\n                    (@AddZeroClass.toAddZero.{u_3} G\n                      (@AddMonoid.toAddZeroClass.{u_3} G\n                        (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n                (@Neg.neg.{u_3} G\n                  (@NegZeroClass.toNeg.{u_3} G\n                    (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n                      (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n                  g)\n                a)) →\n        ∀ (n : Int),\n          P\n            (@HSMul.hSMul.{0, u_3, u_3} Int G G\n              (@instHSMul.{0, u_3} Int G\n                (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n              n g)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-77f7ca15c0ea5fdd806070a30d6a3dc9ca33e0df608479871e16e5abace40ea0","qualified_name":"zsmul_induction_right","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] {g : G} {P : G → Prop},\n  P\n      (@OfNat.ofNat.{u_3} G (nat_lit 0)\n        (@Zero.toOfNat0.{u_3} G\n          (@NegZeroClass.toZero.{u_3} G\n            (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n              (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst)))))) →\n    (∀ (a : G),\n        P a →\n          P\n            (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n              (@instHAdd.{u_3} G\n                (@AddZero.toAdd.{u_3} G\n                  (@AddZeroClass.toAddZero.{u_3} G\n                    (@AddMonoid.toAddZeroClass.{u_3} G\n                      (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n              a g)) →\n      (∀ (a : G),\n          P a →\n            P\n              (@HAdd.hAdd.{u_3, u_3, u_3} G G G\n                (@instHAdd.{u_3} G\n                  (@AddZero.toAdd.{u_3} G\n                    (@AddZeroClass.toAddZero.{u_3} G\n                      (@AddMonoid.toAddZeroClass.{u_3} G\n                        (@SubNegMonoid.toAddMonoid.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))))\n                a\n                (@Neg.neg.{u_3} G\n                  (@NegZeroClass.toNeg.{u_3} G\n                    (@SubNegZeroMonoid.toNegZeroClass.{u_3} G\n                      (@SubtractionMonoid.toSubNegZeroMonoid.{u_3} G (@AddGroup.toSubtractionMonoid.{u_3} G inst))))\n                  g))) →\n        ∀ (n : Int),\n          P\n            (@HSMul.hSMul.{0, u_3, u_3} Int G G\n              (@instHSMul.{0, u_3} Int G\n                (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n              n g)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-4ec4edbccad2745ecad04fecbef1ad21f3bffd669e2b54f2d506f7271fa57a06","qualified_name":"zsmul_iterate","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (k : Int) (n : Nat),\n  @Eq.{u_3 + 1} (G → G)\n    (@Nat.iterate.{u_3 + 1} G\n      (fun x =>\n        @HSMul.hSMul.{0, u_3, u_3} Int G G\n          (@instHSMul.{0, u_3} Int G\n            (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n          k x)\n      n)\n    fun x =>\n    @HSMul.hSMul.{0, u_3, u_3} Int G G\n      (@instHSMul.{0, u_3} Int G\n        (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n      (@HPow.hPow.{0, 0, 0} Int Nat Int (@instHPow.{0, 0} Int Nat (@instPowNat.{0} Int Int.instNatPow)) k n) x"},{"kind":"definition","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b22b1b61388198bffae2cdce10f8cc45f0f264b58aa681d6b3c9c44cd4379628","qualified_name":"zsmul_iterate._f","statement":"∀ {G : Type u_3} [inst : AddGroup.{u_3} G] (k : Int) (x : Nat)\n  (f :\n    @Nat.below.{0}\n      (fun x =>\n        @Eq.{u_3 + 1} (G → G)\n          (@Nat.iterate.{u_3 + 1} G\n            (fun x =>\n              @HSMul.hSMul.{0, u_3, u_3} Int G G\n                (@instHSMul.{0, u_3} Int G\n                  (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n                k x)\n            x)\n          fun x_1 =>\n          @HSMul.hSMul.{0, u_3, u_3} Int G G\n            (@instHSMul.{0, u_3} Int G\n              (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n            (@HPow.hPow.{0, 0, 0} Int Nat Int (@instHPow.{0, 0} Int Nat (@instPowNat.{0} Int Int.instNatPow)) k x) x_1)\n      x),\n  @Eq.{u_3 + 1} (G → G)\n    (@Nat.iterate.{u_3 + 1} G\n      (fun x =>\n        @HSMul.hSMul.{0, u_3, u_3} Int G G\n          (@instHSMul.{0, u_3} Int G\n            (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n          k x)\n      x)\n    fun x_1 =>\n    @HSMul.hSMul.{0, u_3, u_3} Int G G\n      (@instHSMul.{0, u_3} Int G\n        (@ZSMul.toSMul.{u_3} G (@SubNegMonoid.toZSMul.{u_3} G (@AddGroup.toSubNegMonoid.{u_3} G inst))))\n      (@HPow.hPow.{0, 0, 0} Int Nat Int (@instHPow.{0, 0} Int Nat (@instPowNat.{0} Int Int.instNatPow)) k x) x_1"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-fe715fdff5cc1a62a3e86551c5bfb5c137db43de4110b15f99488e8e161f5be3","qualified_name":"zsmul_neg","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a : α) (n : Int),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{0, u_1, u_1} Int α α\n      (@instHSMul.{0, u_1} Int α\n        (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n      n\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))\n        a))\n    (@Neg.neg.{u_1} α\n      (@NegZeroClass.toNeg.{u_1} α\n        (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))\n      (@HSMul.hSMul.{0, u_1, u_1} Int α α\n        (@instHSMul.{0, u_1} Int α\n          (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n        n a))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-7bbfa4c7bb386b7670c6c189c8d07103041cd584b7ed48944ac53f791f379bca","qualified_name":"zsmul_neg'","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a : α) (n : Int),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{0, u_1, u_1} Int α α\n      (@instHSMul.{0, u_1} Int α\n        (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n      n\n      (@Neg.neg.{u_1} α\n        (@NegZeroClass.toNeg.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))\n        a))\n    (@HSMul.hSMul.{0, u_1, u_1} Int α α\n      (@instHSMul.{0, u_1} Int α\n        (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n      (@Neg.neg.{0} Int Int.instNegInt n) a)"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-d401f7014205a802afcc97cf407102cce078c51465d27ef3cc5e0fc42107ef71","qualified_name":"zsmul_sub","statement":"∀ {α : Type u_1} [inst : SubtractionCommMonoid.{u_1} α] (a b : α) (n : Int),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{0, u_1, u_1} Int α α\n      (@instHSMul.{0, u_1} Int α\n        (@ZSMul.toSMul.{u_1} α\n          (@SubNegMonoid.toZSMul.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))\n      n\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α\n          (@SubNegMonoid.toSub.{u_1} α\n            (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n        a b))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α\n        (@SubNegMonoid.toSub.{u_1} α\n          (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst))))\n      (@HSMul.hSMul.{0, u_1, u_1} Int α α\n        (@instHSMul.{0, u_1} Int α\n          (@ZSMul.toSMul.{u_1} α\n            (@SubNegMonoid.toZSMul.{u_1} α\n              (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))\n        n a)\n      (@HSMul.hSMul.{0, u_1, u_1} Int α α\n        (@instHSMul.{0, u_1} Int α\n          (@ZSMul.toSMul.{u_1} α\n            (@SubNegMonoid.toZSMul.{u_1} α\n              (@SubtractionMonoid.toSubNegMonoid.{u_1} α (@SubtractionCommMonoid.toSubtractionMonoid.{u_1} α inst)))))\n        n b))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-b7a6f781e571a4f9ad16c9b970a76ab3f47b2641896c0b8f7160d51c686bec46","qualified_name":"zsmul_zero","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (n : Int),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{0, u_1, u_1} Int α α\n      (@instHSMul.{0, u_1} Int α\n        (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n      n\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@NegZeroClass.toZero.{u_1} α\n            (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst))))))\n    (@OfNat.ofNat.{u_1} α (nat_lit 0)\n      (@Zero.toOfNat0.{u_1} α\n        (@NegZeroClass.toZero.{u_1} α\n          (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))))"},{"kind":"theorem","module":"Mathlib.Algebra.Group.Basic","object_id":"object-71d14bd21521925b485b3c2078e270e97ab427c70caa6a002ad66b4d3d317a1d","qualified_name":"zsmul_zero_sub","statement":"∀ {α : Type u_1} [inst : SubtractionMonoid.{u_1} α] (a : α) (n : Int),\n  @Eq.{u_1 + 1} α\n    (@HSMul.hSMul.{0, u_1, u_1} Int α α\n      (@instHSMul.{0, u_1} Int α\n        (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n      n\n      (@HSub.hSub.{u_1, u_1, u_1} α α α\n        (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n        (@OfNat.ofNat.{u_1} α (nat_lit 0)\n          (@Zero.toOfNat0.{u_1} α\n            (@NegZeroClass.toZero.{u_1} α\n              (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))))\n        a))\n    (@HSub.hSub.{u_1, u_1, u_1} α α α\n      (@instHSub.{u_1} α (@SubNegMonoid.toSub.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst)))\n      (@OfNat.ofNat.{u_1} α (nat_lit 0)\n        (@Zero.toOfNat0.{u_1} α\n          (@NegZeroClass.toZero.{u_1} α\n            (@SubNegZeroMonoid.toNegZeroClass.{u_1} α (@SubtractionMonoid.toSubNegZeroMonoid.{u_1} α inst)))))\n      (@HSMul.hSMul.{0, u_1, u_1} Int α α\n        (@instHSMul.{0, u_1} Int α\n          (@ZSMul.toSMul.{u_1} α (@SubNegMonoid.toZSMul.{u_1} α (@SubtractionMonoid.toSubNegMonoid.{u_1} α inst))))\n        n a))"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-014ccb76c7f935cb26bb8f4ffbae30baeb9226828816dd9da02e1807bc931c68","qualified_name":"«_aux_Mathlib_Order_Basic___macroRules_term_⁻¹'o__1»","statement":"Lean.Macro"},{"kind":"definition","module":"Mathlib.Order.Basic","object_id":"object-53a3d4c3f1a85fb0d006025a65a5559c66615822f6b9ab7dac52e91a9384add3","qualified_name":"«term_⁻¹'o_»","statement":"Lean.TrailingParserDescr"}]