NPAへ戻る
Declaration
ring_crt_kernel_to_intersection
Mathlib.Algebra.Ring.ChineseRemainder
Packages
2
Module
63
Theorem
750
Declarations
1016
信頼境界外の sidecar
Source text や表示 overlay は提示用メタデータです。信頼する証拠は署名済み証明書と checker の結果です。
Statement
forall (R : Sort succ u), forall (RI : Sort succ v), forall (RJ : Sort succ w), forall (P : Sort succ p), forall (zeroI : RI), forall (zeroJ : RJ), forall (zeroP : P), forall (pair : forall (x : RI), forall (y : RJ), P), forall (fst : forall (z : P), RI), forall (snd : forall (z : P), RJ), forall (modI : forall (x : R), RI), forall (modJ : forall (x : R), RJ), forall (fst_pair : forall (x : RI), forall (y : RJ), @Eq.{succ v} RI (fst (pair x y)) x), forall (snd_pair : forall (x : RI), forall (y : RJ), @Eq.{succ w} RJ (snd (pair x y)) y), forall (zero_pair : @Eq.{succ p} P (pair zeroI zeroJ) zeroP), forall (x : R), forall (h : @Eq.{succ p} P (@RingCrtPairMap.{succ p,succ u,succ v,succ w} R RI RJ P pair modI modJ x) zeroP), @RingCrtIntersectionPred.{succ u,succ v,succ w} R RI RJ zeroI zeroJ modI modJ x
Proof term
theorem ring_crt_kernel_to_intersection.{p,u,v,w} :
forall (R : Sort succ u), forall (RI : Sort succ v), forall (RJ : Sort succ w), forall (P : Sort succ p), forall (zeroI : RI), forall (zeroJ : RJ), forall (zeroP : P), forall (pair : forall (x : RI), forall (y : RJ), P), forall (fst : forall (z : P), RI), forall (snd : forall (z : P), RJ), forall (modI : forall (x : R), RI), forall (modJ : forall (x : R), RJ), forall (fst_pair : forall (x : RI), forall (y : RJ), @Eq.{succ v} RI (fst (pair x y)) x), forall (snd_pair : forall (x : RI), forall (y : RJ), @Eq.{succ w} RJ (snd (pair x y)) y), forall (zero_pair : @Eq.{succ p} P (pair zeroI zeroJ) zeroP), forall (x : R), forall (h : @Eq.{succ p} P (@RingCrtPairMap.{succ p,succ u,succ v,succ w} R RI RJ P pair modI modJ x) zeroP), @RingCrtIntersectionPred.{succ u,succ v,succ w} R RI RJ zeroI zeroJ modI modJ x :=
fun R => fun RI => fun RJ => fun P => fun zeroI => fun zeroJ => fun zeroP => fun pair => fun fst => fun snd => fun modI => fun modJ => fun fst_pair => fun snd_pair => fun zero_pair => fun x => fun h => @ring_crt_intersection_intro.{succ u,succ v,succ w} R RI RJ zeroI zeroJ modI modJ x (@eq_trans.{succ v} RI (modI x) (fst (@RingCrtPairMap.{succ p,succ u,succ v,succ w} R RI RJ P pair modI modJ x)) zeroI (@eq_symm.{succ v} RI (fst (@RingCrtPairMap.{succ p,succ u,succ v,succ w} R RI RJ P pair modI modJ x)) (modI x) (fst_pair (modI x) (modJ x))) (@eq_trans.{succ v} RI (fst (@RingCrtPairMap.{succ p,succ u,succ v,succ w} R RI RJ P pair modI modJ x)) (fst zeroP) zeroI (@eq_congr_arg.{succ p,succ v} P RI fst (@RingCrtPairMap.{succ p,succ u,succ v,succ w} R RI RJ P pair modI modJ x) zeroP h) (@eq_trans.{succ v} RI (fst zeroP) (fst (pair zeroI zeroJ)) zeroI (@eq_symm.{succ v} RI (fst (pair zeroI zeroJ)) (fst zeroP) (@eq_congr_arg.{succ p,succ v} P RI fst (pair zeroI zeroJ) zeroP zero_pair)) (fst_pair zeroI zeroJ)))) (@eq_trans.{succ w} RJ (modJ x) (snd (@RingCrtPairMap.{succ p,succ u,succ v,succ w} R RI RJ P pair modI modJ x)) zeroJ (@eq_symm.{succ w} RJ (snd (@RingCrtPairMap.{succ p,succ u,succ v,succ w} R RI RJ P pair modI modJ x)) (modJ x) (snd_pair (modI x) (modJ x))) (@eq_trans.{succ w} RJ (snd (@RingCrtPairMap.{succ p,succ u,succ v,succ w} R RI RJ P pair modI modJ x)) (snd zeroP) zeroJ (@eq_congr_arg.{succ p,succ w} P RJ snd (@RingCrtPairMap.{succ p,succ u,succ v,succ w} R RI RJ P pair modI modJ x) zeroP h) (@eq_trans.{succ w} RJ (snd zeroP) (snd (pair zeroI zeroJ)) zeroJ (@eq_symm.{succ w} RJ (snd (pair zeroI zeroJ)) (snd zeroP) (@eq_congr_arg.{succ p,succ w} P RJ snd (pair zeroI zeroJ) zeroP zero_pair)) (snd_pair zeroI zeroJ))))
Constants
Mathlib.Algebra.Ring.ChineseRemainder.RingCrtIntersectionPred
Interface hash: sha256:d7078db886688e39bc3bd8cd7fe1681a308fc3ed146e2d568a37431fd39df6f1
Mathlib.Algebra.Ring.ChineseRemainder.RingCrtPairMap
Interface hash: sha256:4ada5d83f369f9f2d66a083321390e9826bd276026f0aa1d13a638a1c4f5c113
Std.Logic.Eq.Eq
Interface hash: sha256:ca4f8520fd678a809c3ebf0bc7fa38d3063ca4d231e79d567de888685449a015