NPAへ戻る

Module

Mathlib.Algebra.Group.Kernel

npa-mathlib

Packages

2

Module

63

Theorem

750

Declarations

1016

信頼境界外の sidecar

Source text や表示 overlay は提示用メタデータです。信頼する証拠は署名済み証明書と checker の結果です。

Theorem

3

Definition

0

Inductive type

0

Axiom

1

Declarations

Hashes

source
sha256:962c2db5be02218d92e681a9d92035d12cd06f23515aafad793dd5612ae14736
certificateFile
sha256:66724ebc31b2a845aa5e91dc9468f5470ee1b6ecb22b7b5632dfc912b3f96d0c
export
sha256:5c1a39b0e9f82dc1014e3e63549c71eab3db6383024a87408e4e95e06bc33fbb
axiomReport
sha256:39f92e3a74edf201d900d93abeebb9c404ea8c141bfc46761f7e889c9f8cf9f7
certificate
sha256:8d1c72935c2c22edd3911a907df17b3e84b95ebae56fb27f4f514dcd6dbef14d

Source

import Std.Logic.Eq
import Mathlib.Logic.EqReasoning
import Mathlib.Algebra.Group.Basic

theorem kernel_mul_closed.{u,v} :
  forall (G : Sort u), forall (oneG : G), forall (mulG : forall (a : G), forall (b : G), G), forall (invG : forall (a : G), G), forall (H : Sort v), forall (oneH : H), forall (mulH : forall (a : H), forall (b : H), H), forall (invH : forall (a : H), H), forall (f : forall (x : G), H), forall (groupH_args : @GroupLawArgs.{v} H oneH mulH invH), forall (hom_args : @GroupHomLawArgs.{u,v} G oneG mulG invG H oneH mulH invH f), forall (a : G), forall (b : G), forall (ha : @KernelPred.{u,v} G H oneH f a), forall (hb : @KernelPred.{u,v} G H oneH f b), @KernelPred.{u,v} G H oneH f (mulG a b) :=
  fun G => fun oneG => fun mulG => fun invG => fun H => fun oneH => fun mulH => fun invH => fun f => fun groupH_args => fun hom_args => fun a => fun b => fun ha => fun hb => @eq_trans.{v} H (f (mulG a b)) (mulH (f a) (f b)) oneH (@hom_mul.{u,v} G oneG mulG invG H oneH mulH invH f hom_args a b) (@eq_trans.{v} H (mulH (f a) (f b)) (mulH oneH oneH) oneH (@eq_congr2.{v,v,v} H H H mulH (f a) oneH (f b) oneH ha hb) (@group_one_mul.{v} H oneH mulH invH groupH_args oneH))

theorem kernel_inv_closed.{u,v} :
  forall (G : Sort u), forall (oneG : G), forall (mulG : forall (a : G), forall (b : G), G), forall (invG : forall (a : G), G), forall (H : Sort v), forall (oneH : H), forall (mulH : forall (a : H), forall (b : H), H), forall (invH : forall (a : H), H), forall (f : forall (x : G), H), forall (groupH_args : @GroupLawArgs.{v} H oneH mulH invH), forall (hom_args : @GroupHomLawArgs.{u,v} G oneG mulG invG H oneH mulH invH f), forall (a : G), forall (ha : @KernelPred.{u,v} G H oneH f a), @KernelPred.{u,v} G H oneH f (invG a) :=
  fun G => fun oneG => fun mulG => fun invG => fun H => fun oneH => fun mulH => fun invH => fun f => fun groupH_args => fun hom_args => fun a => fun ha => @eq_trans.{v} H (f (invG a)) (invH (f a)) oneH (@hom_inv.{u,v} G oneG mulG invG H oneH mulH invH f hom_args a) (@eq_trans.{v} H (invH (f a)) (invH oneH) oneH (@eq_congr_arg.{v,v} H H invH (f a) oneH ha) (@eq_trans.{v} H (invH oneH) (mulH (invH oneH) oneH) oneH (@eq_symm.{v} H (mulH (invH oneH) oneH) (invH oneH) (@group_mul_one.{v} H oneH mulH invH groupH_args (invH oneH))) (@group_inv_mul.{v} H oneH mulH invH groupH_args oneH)))

theorem kernel_conj_closed.{u,v} :
  forall (G : Sort u), forall (oneG : G), forall (mulG : forall (a : G), forall (b : G), G), forall (invG : forall (a : G), G), forall (H : Sort v), forall (oneH : H), forall (mulH : forall (a : H), forall (b : H), H), forall (invH : forall (a : H), H), forall (f : forall (x : G), H), forall (groupH_args : @GroupLawArgs.{v} H oneH mulH invH), forall (hom_args : @GroupHomLawArgs.{u,v} G oneG mulG invG H oneH mulH invH f), forall (g : G), forall (a : G), forall (ha : @KernelPred.{u,v} G H oneH f a), @KernelPred.{u,v} G H oneH f (mulG (mulG g a) (invG g)) :=
  fun G => fun oneG => fun mulG => fun invG => fun H => fun oneH => fun mulH => fun invH => fun f => fun groupH_args => fun hom_args => fun g => fun a => fun ha => @eq_trans.{v} H (f (mulG (mulG g a) (invG g))) (mulH (f (mulG g a)) (f (invG g))) oneH (@hom_mul.{u,v} G oneG mulG invG H oneH mulH invH f hom_args (mulG g a) (invG g)) (@eq_trans.{v} H (mulH (f (mulG g a)) (f (invG g))) (mulH (mulH (f g) (f a)) (invH (f g))) oneH (@eq_congr2.{v,v,v} H H H mulH (f (mulG g a)) (mulH (f g) (f a)) (f (invG g)) (invH (f g)) (@hom_mul.{u,v} G oneG mulG invG H oneH mulH invH f hom_args g a) (@hom_inv.{u,v} G oneG mulG invG H oneH mulH invH f hom_args g)) (@eq_trans.{v} H (mulH (mulH (f g) (f a)) (invH (f g))) (mulH (mulH (f g) oneH) (invH (f g))) oneH (@eq_congr_arg.{v,v} H H (fun (z : H) => mulH (mulH (f g) z) (invH (f g))) (f a) oneH ha) (@eq_trans.{v} H (mulH (mulH (f g) oneH) (invH (f g))) (mulH (f g) (mulH oneH (invH (f g)))) oneH (@group_mul_assoc.{v} H oneH mulH invH groupH_args (f g) oneH (invH (f g))) (@eq_trans.{v} H (mulH (f g) (mulH oneH (invH (f g)))) (mulH (f g) (invH (f g))) oneH (@eq_congr_arg.{v,v} H H (fun (z : H) => mulH (f g) z) (mulH oneH (invH (f g))) (invH (f g)) (@group_one_mul.{v} H oneH mulH invH groupH_args (invH (f g)))) (@group_mul_inv.{v} H oneH mulH invH groupH_args (f g))))))