10
10
module Cubical.Algebra.CommRing.Instances.Polynomials.Typevariate.OnCoproduct where
11
11
12
12
open import Cubical.Foundations.Prelude
13
- open import Cubical.Foundations.Function using (_∘_)
13
+ open import Cubical.Foundations.Function using (_∘_; _$_ )
14
14
open import Cubical.Foundations.Structure using (⟨_⟩)
15
15
16
16
open import Cubical.Data.Sum as ⊎
@@ -45,10 +45,13 @@ module CalculatePolynomialsOnCoproduct (R : CommRing ℓ) (I J : Type ℓ) where
45
45
mapVars (inr j) = var j
46
46
47
47
to∘MapVars : to .fst ∘ mapVars ≡ var
48
- to∘MapVars = funExt λ {(inl i) → to .fst (constPolynomial _ _ $cr var i)
49
- ≡⟨ cong (λ z → z i) (evalInduce (R [ I ⊎ J ]) (constPolynomial R (I ⊎ J)) (var ∘ inl)) ⟩
50
- var (inl i) ∎;
51
- (inr j) → (to .fst (var j) ≡⟨ cong (λ z → z j) evalVarTo ⟩ var (inr j) ∎)}
48
+ to∘MapVars =
49
+ funExt λ {(inl i) → to .fst (constPolynomial _ _ $cr var i)
50
+ ≡⟨ cong (λ z → z i)
51
+ (evalInduce (R [ I ⊎ J ])
52
+ (constPolynomial R (I ⊎ J)) (var ∘ inl)) ⟩
53
+ var (inl i) ∎;
54
+ (inr j) → (to .fst (var j) ≡⟨ cong (λ z → z j) evalVarTo ⟩ var (inr j) ∎)}
52
55
53
56
from : CommRingHom (R [ I ⊎ J ]) ((R [ I ]) [ J ])
54
57
from = inducedHom
@@ -59,7 +62,7 @@ module CalculatePolynomialsOnCoproduct (R : CommRing ℓ) (I J : Type ℓ) where
59
62
evalVarFrom : from .fst ∘ var ≡ mapVars
60
63
evalVarFrom = evalInduce ((R [ I ]) [ J ]) (constPolynomial (R [ I ]) J ∘cr constPolynomial R I) mapVars
61
64
62
- toFrom : to ∘cr from ≡ (idCommRingHom _ )
65
+ toFrom : to ∘cr from ≡ (idCommRingHom (R [ I ⊎ J ]) )
63
66
toFrom =
64
67
idByIdOnVars
65
68
(to ∘cr from)
@@ -68,14 +71,35 @@ module CalculatePolynomialsOnCoproduct (R : CommRing ℓ) (I J : Type ℓ) where
68
71
(to .fst ∘ from .fst ∘ var ≡⟨ cong (to .fst ∘_) evalVarFrom ⟩
69
72
to .fst ∘ mapVars ≡⟨ to∘MapVars ⟩
70
73
var ∎)
71
- {-
72
- fromTo : from ∘cr to ≡ (idCommRingHom _)
74
+
75
+ {- from and to are R[I]-algebra homomorphisms:
76
+ this is true definitionally for to.
77
+ -}
78
+ fromAlgebraHom : from ∘cr I→I+J ≡ constPolynomial (R [ I ]) J
79
+ fromAlgebraHom =
80
+ hom≡ByValuesOnVars
81
+ ((R [ I ]) [ J ]) (constPolynomial (R [ I ]) J ∘cr constPolynomial R I)
82
+ (from ∘cr I→I+J) (constPolynomial (R [ I ]) J)
83
+ refl refl
84
+ (funExt
85
+ (λ i → (from ∘cr I→I+J) .fst (var i)
86
+ ≡⟨ cong (from .fst)
87
+ (evalOnVars (R [ I ⊎ J ])
88
+ (constPolynomial R (I ⊎ J))
89
+ (var ∘ inl) i) ⟩
90
+ from .fst (var (inl i))
91
+ ≡⟨ evalOnVars ((R [ I ]) [ J ])
92
+ (constPolynomial (R [ I ]) J ∘cr constPolynomial R I)
93
+ mapVars (inl i) ⟩
94
+ constPolynomial (R [ I ]) J $cr var i ∎))
95
+
96
+ fromTo : from ∘cr to ≡ (idCommRingHom $ (R [ I ]) [ J ])
73
97
fromTo =
74
98
idByIdOnVars
75
99
(from ∘cr to)
76
100
(from .fst ∘ to .fst ∘ constPolynomial (R [ I ]) J .fst ≡⟨⟩
77
- from .fst ∘ I→I+J .fst
78
- ≡⟨ cong fst (hom≡ByValuesOnVars ((R [ I ]) [ J ]) {!from ∘cr I→I+J!} {!I→I+J!} {!!} {!!} {!!} {!!}) ⟩
101
+ from .fst ∘ I→I+J .fst ≡⟨ cong fst fromAlgebraHom ⟩
79
102
constPolynomial (R [ I ]) J .fst ∎)
80
- (from .fst ∘ to .fst ∘ var ≡⟨ {!!} ⟩ var ∎)
81
- -}
103
+ (from .fst ∘ to .fst ∘ var ≡⟨ cong (from .fst ∘_) (funExt $ evalOnVars (R [ I ⊎ J ]) I→I+J (var ∘ inr) ) ⟩
104
+ from .fst ∘ var ∘ inr ≡⟨ (funExt $ λ j → evalOnVars _ _ _ (inr j)) ⟩
105
+ var ∎)
0 commit comments