diff --git a/Cubical/Algebra/CommRing/Localisation/InvertingElements.agda b/Cubical/Algebra/CommRing/Localisation/InvertingElements.agda index b190c9cc72..1a10d2e56b 100644 --- a/Cubical/Algebra/CommRing/Localisation/InvertingElements.agda +++ b/Cubical/Algebra/CommRing/Localisation/InvertingElements.agda @@ -175,26 +175,22 @@ module InvertingElementsBase (R' : CommRing ℓ) where 1r · s · g ^ l ∎ - invElPropElimN : (n : ℕ) (f : FinVec R (suc n)) (P : ((i : Fin (suc n)) → R[1/ (f i) ]) → Type ℓ') + invElPropElimN : (n : ℕ) (f : FinVec R n) (P : ((i : Fin n) → R[1/ (f i) ]) → Type ℓ') → (∀ x → isProp (P x)) - → (∀ (r : FinVec R (suc n)) (m : ℕ) → P (λ i → [ r i , (f i ^ m) , PT.∣ m , refl ∣₁ ])) + → (∀ (r : FinVec R n) (m : ℕ) → P (λ i → [ r i , (f i ^ m) , PT.∣ m , refl ∣₁ ])) ------------------------------------------------------------------------------------- → ∀ x → P x invElPropElimN zero f P isPropP baseCase x = - subst P (funExt (λ { zero → refl })) (invElPropElim {P = P'} (λ _ → isPropP _) - (λ r n → subst P (funExt (λ { zero → refl })) (baseCase (λ {zero → r}) n)) (x zero)) - where - P' : R[1/ (f zero) ] → Type _ - P' x = P (λ {zero → x}) + subst P (funExt (λ ())) (baseCase (λ ()) zero) invElPropElimN (suc n) f P isPropP baseCase x = subst P (funExt (λ { zero → refl ; (suc i) → refl })) (invElPropElimN n (f ∘ suc) P' (λ _ → isPropP _) baseCase' (x ∘ suc)) where - P' : ((i : Fin (suc n)) → R[1/ (f (suc i)) ]) → Type _ + P' : ((i : Fin n) → R[1/ (f (suc i)) ]) → Type _ P' y = P (λ { zero → x zero ; (suc i) → y i }) - baseCase' : ∀ (rₛ : FinVec R (suc n)) (m : ℕ) + baseCase' : ∀ (rₛ : FinVec R n) (m : ℕ) → P' (λ i → [ rₛ i , f (suc i) ^ m , ∣ m , refl ∣₁ ]) baseCase' rₛ m = subst P (funExt (λ { zero → refl ; (suc i) → refl })) @@ -209,15 +205,15 @@ module InvertingElementsBase (R' : CommRing ℓ) where where l = max m k - newEnumVec : FinVec R (suc (suc n)) + newEnumVec : FinVec R (suc n) newEnumVec zero = r₀ · (f zero) ^ (l ∸ k) newEnumVec (suc i) = rₛ i · (f (suc i)) ^ (l ∸ m) - oldBaseVec : (i : Fin (suc (suc n))) → R[1/ (f i) ] + oldBaseVec : (i : Fin (suc n)) → R[1/ (f i) ] oldBaseVec = λ { zero → [ r₀ , f zero ^ k , ∣ k , refl ∣₁ ] ; (suc i) → [ rₛ i , f (suc i) ^ m , ∣ m , (λ _ → f (suc i) ^ m) ∣₁ ] } - newBaseVec : (i : Fin (suc (suc n))) → R[1/ (f i) ] + newBaseVec : (i : Fin (suc n)) → R[1/ (f i) ] newBaseVec zero = [ r₀ · (f zero) ^ (l ∸ k) , (f zero) ^ l , ∣ l , refl ∣₁ ] newBaseVec (suc i) = [ rₛ i · (f (suc i)) ^ (l ∸ m) , (f (suc i)) ^ l , ∣ l , refl ∣₁ ] @@ -292,8 +288,6 @@ module _ {A B : CommRing ℓ} (φ : CommRingHom A B) (f : fst A) where (fst χ) ∘ (fst AU./1AsCommRingHom) ≡ (fst φ/1) uniqInvElemHom = AU.invElemUniversalProp _ φ/1 (BU.S/1⊆S⁻¹Rˣ _ ∣ 1 , sym (·IdR _) ∣₁) - - module _ (R : CommRing ℓ) (f : fst R) where open CommRingTheory R open RingTheory (CommRing→Ring R) diff --git a/Cubical/Algebra/CommRing/Localisation/Limit.agda b/Cubical/Algebra/CommRing/Localisation/Limit.agda index b8e3dc24c3..6f65e200ac 100644 --- a/Cubical/Algebra/CommRing/Localisation/Limit.agda +++ b/Cubical/Algebra/CommRing/Localisation/Limit.agda @@ -59,7 +59,7 @@ private -- were not dealing with case 0 here -- but then R = 0 = lim {} (limit of the empty diagram) -module _ (R' : CommRing ℓ) {n : ℕ} (f : FinVec (fst R') (suc n)) where +module _ (R' : CommRing ℓ) {n : ℕ} (f : FinVec (fst R') n) where open isMultClosedSubset open CommRingTheory R' open RingTheory (CommRing→Ring R') @@ -84,13 +84,13 @@ module _ (R' : CommRing ℓ) {n : ℕ} (f : FinVec (fst R') (suc n)) where module UP i j = S⁻¹RUniversalProp R' [ f i · f j ⁿ|n≥0] (powersFormMultClosedSubset (f i · f j)) -- some syntax to make things readable - 0at : (i : Fin (suc n)) → R[1/ (f i) ] + 0at : (i : Fin n) → R[1/ (f i) ] 0at i = R[1/ (f i) ]AsCommRing .snd .CommRingStr.0r - _/1ˢ : R → {i : Fin (suc n)} → R[1/ (f i) ] + _/1ˢ : R → {i : Fin n} → R[1/ (f i) ] (r /1ˢ) {i = i} = U._/1 i r - _/1ᵖ : R → {i j : Fin (suc n)} → R[1/ (f i) · (f j) ] + _/1ᵖ : R → {i j : Fin n} → R[1/ (f i) · (f j) ] (r /1ᵖ) {i = i} {j = j} = UP._/1 i j r @@ -108,7 +108,7 @@ module _ (R' : CommRing ℓ) {n : ℕ} (f : FinVec (fst R') (suc n)) where → x ≡ 0r annihilatorHelper ann = recFin (is-set _ _) exponentHelper uIsPower where - u : FinVec R (suc n) + u : FinVec R n u i = ann i .fst .fst uIsPower : ∀ i → u i ∈ₚ [ (f i) ⁿ|n≥0] @@ -121,7 +121,7 @@ module _ (R' : CommRing ℓ) {n : ℕ} (f : FinVec (fst R') (suc n)) where → x ≡ 0r exponentHelper pows = PT.rec (is-set _ _) Σhelper (GeneratingPowers.thm R' l _ _ 1∈⟨f₀,⋯,fₙ⟩) where - m : FinVec ℕ (suc n) + m : FinVec ℕ n m i = pows i .fst u≡fᵐ : ∀ i → u i ≡ f i ^ m i @@ -129,7 +129,7 @@ module _ (R' : CommRing ℓ) {n : ℕ} (f : FinVec (fst R') (suc n)) where l = Max m - fˡ : FinVec R (suc n) + fˡ : FinVec R n fˡ i = f i ^ l fˡx≡0 : ∀ i → f i ^ l · x ≡ 0r @@ -145,7 +145,7 @@ module _ (R' : CommRing ℓ) {n : ℕ} (f : FinVec (fst R') (suc n)) where 0r ∎ - Σhelper : Σ[ α ∈ FinVec R (suc n) ] 1r ≡ ∑ (λ i → α i · f i ^ l) + Σhelper : Σ[ α ∈ FinVec R n ] 1r ≡ ∑ (λ i → α i · f i ^ l) → x ≡ 0r Σhelper (α , 1≡∑αfˡ) = x ≡⟨ sym (·IdL _) ⟩ @@ -155,13 +155,13 @@ module _ (R' : CommRing ℓ) {n : ℕ} (f : FinVec (fst R') (suc n)) where (f i ^ l) x)) ⟩ ∑ (λ i → α i · (f i ^ l · x)) ≡⟨ ∑Ext (λ i → cong (α i ·_) (fˡx≡0 i)) ⟩ ∑ (λ i → α i · 0r) ≡⟨ ∑Ext (λ i → 0RightAnnihilates (α i)) ⟩ - ∑ (replicateFinVec (suc n) 0r) ≡⟨ ∑0r (suc n) ⟩ + ∑ (replicateFinVec n 0r) ≡⟨ ∑0r n ⟩ 0r ∎ -- the morphisms into localisations of products from the left/right -- we need to define them by hand as using RadicalLemma wouldn't compute later - χˡUnique : (i j : Fin (suc n)) + χˡUnique : (i j : Fin n) → ∃![ χ ∈ CommRingHom R[1/ f i ]AsCommRing R[1/ f i · f j ]AsCommRing ] (fst χ) ∘ (U._/1 i) ≡ (UP._/1 i j) χˡUnique i j = U.S⁻¹RHasUniversalProp i _ (UP./1AsCommRingHom i j) unitHelper @@ -175,10 +175,10 @@ module _ (R' : CommRing ℓ) {n : ℕ} (f : FinVec (fst R') (suc n)) where path : (n : ℕ) → 1r · (f i ^ n · f j ^ n) · 1r ≡ (1r · 1r) · (1r · ((f i · f j) ^ n)) path n = solve! R' ∙ sym (^-ldist-· (f i) (f j) n) ∙ solve! R' - χˡ : (i j : Fin (suc n)) → CommRingHom R[1/ f i ]AsCommRing R[1/ f i · f j ]AsCommRing + χˡ : (i j : Fin n) → CommRingHom R[1/ f i ]AsCommRing R[1/ f i · f j ]AsCommRing χˡ i j = χˡUnique i j .fst .fst - χʳUnique : (i j : Fin (suc n)) + χʳUnique : (i j : Fin n) → ∃![ χ ∈ CommRingHom R[1/ f j ]AsCommRing R[1/ f i · f j ]AsCommRing ] (fst χ) ∘ (U._/1 j) ≡ (UP._/1 i j) χʳUnique i j = U.S⁻¹RHasUniversalProp j _ (UP./1AsCommRingHom i j) unitHelper @@ -192,14 +192,14 @@ module _ (R' : CommRing ℓ) {n : ℕ} (f : FinVec (fst R') (suc n)) where path : (n : ℕ) → 1r · (f j ^ n · f i ^ n) · 1r ≡ (1r · 1r) · (1r · ((f i · f j) ^ n)) path n = solve! R' ∙ sym (^-ldist-· (f i) (f j) n) ∙ solve! R' - χʳ : (i j : Fin (suc n)) → CommRingHom R[1/ f j ]AsCommRing R[1/ f i · f j ]AsCommRing + χʳ : (i j : Fin n) → CommRingHom R[1/ f j ]AsCommRing R[1/ f i · f j ]AsCommRing χʳ i j = χʳUnique i j .fst .fst -- super technical stuff, please don't look at it private - χ≡Elim