Back to NPA

Module

Mathlib.Algebra.Group.SecondIsomorphism.Kernel

npa-mathlib

Packages

2

Module

63

Theorems

750

Declarations

1016

Untrusted sidecar

Source text and display overlays are presentation metadata. The signed certificate and checker result are the trusted evidence.

Theorems

3

Definitions

1

Inductive types

0

Axioms

1

Declarations

Hashes

source
sha256:a42ee04d7c4e8ace9ef454d16ed178c4fb661201552a88b727fcf001d7cf6148
certificateFile
sha256:a380515b9fe711dc33de2c3f579a7a929eab8a7c2b7e1c9bf114475532720404
export
sha256:3466bcdd983128af0e213dd9b2ce47e17b95e5a3da110dd3d9701801a781423c
axiomReport
sha256:1f6f1e5c334718f52501f6e5180cb7bbb7ef35771fae3310d147efdb3cdac988
certificate
sha256:bba7002ca527e90934c0d392fd438a0b5e60a835fe5bbb4a8fbd2ccbdda73e8f

Source

import Std.Logic.Eq
import Mathlib.Algebra.Group.Basic
import Mathlib.Algebra.Group.Subgroup
import Mathlib.Algebra.Group.Quotient
import Mathlib.Algebra.Group.Quotient.Mul
import Mathlib.Algebra.Group.Quotient.Group
import Mathlib.Algebra.Group.SecondIsomorphism.Map

def SecondIsoKernelPred.{u} :
  forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop), forall (h : G), Prop :=
  fun G => fun one => fun mul => fun inv => fun N => fun h => @NormalRel.{succ u} G one mul inv N h one

theorem second_iso_kernel_sound.{u} :
  forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (normal_args : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (Hpred : forall (x : G), Prop), forall (h : G), forall (hh : Hpred h), forall (hk : @SecondIsoKernelPred.{u} G one mul inv N h), @Eq.{succ u} (@NormalQuot.{u} G one mul inv N group_args normal_args) (@SecondIsoPhi.{u} G one mul inv N group_args normal_args Hpred h hh) (@NormalQuotOne.{u} G one mul inv N group_args normal_args) :=
  fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun normal_args => fun Hpred => fun h => fun hh => fun hk => @normal_quot_sound.{u} G one mul inv N group_args normal_args h one hk

theorem second_iso_kernel_to_inter.{u} :
  forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (normal_args : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (Hpred : forall (x : G), Prop), forall (h : G), forall (hh : Hpred h), forall (hk : @SecondIsoKernelPred.{u} G one mul inv N h), @SubgroupInterPred.{succ u} G Hpred N h :=
  fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun normal_args => fun Hpred => fun h => fun hh => fun hk => @subgroup_inter_intro.{succ u} G Hpred N h hh (@normal_rel_one_to_mem.{succ u} G one mul inv group_args N normal_args h hk)

theorem second_iso_inter_to_kernel.{u} :
  forall (G : Sort succ u), forall (one : G), forall (mul : forall (a : G), forall (b : G), G), forall (inv : forall (a : G), G), forall (N : forall (x : G), Prop), forall (group_args : @GroupLawArgs.{succ u} G one mul inv), forall (normal_args : @NormalSubgroupLawArgs.{succ u} G one mul inv N), forall (Hpred : forall (x : G), Prop), forall (h : G), forall (hi : @SubgroupInterPred.{succ u} G Hpred N h), @SecondIsoKernelPred.{u} G one mul inv N h :=
  fun G => fun one => fun mul => fun inv => fun N => fun group_args => fun normal_args => fun Hpred => fun h => fun hi => @normal_rel_one_of_mem.{succ u} G one mul inv group_args N normal_args h (@subgroup_inter_right.{succ u} G Hpred N h hi)