Skip to content

Commit 7baaa92

Browse files
authored
Merge branch 'main' into quasigroup
2 parents 6087955 + 8d26384 commit 7baaa92

32 files changed

+769
-594
lines changed

src/1Lab/Reflection/Induction/Examples.agda

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,6 @@ open import Homotopy.Space.Circle hiding (S¹-elim)
1212

1313
module 1Lab.Reflection.Induction.Examples where
1414

15-
unquoteDecl Fin-elim = make-elim Fin-elim (quote Fin)
16-
17-
_ : {ℓ : Level} {P : {n : Nat} (f : Fin n) Type ℓ}
18-
(P0 : {n : Nat} P fzero)
19-
(Psuc : {n : Nat} (f : Fin n) (Pf : P f) P (fsuc f))
20-
{n : Nat} (f : Fin n) P f
21-
_ = Fin-elim
22-
2315
unquoteDecl J = make-elim-with default-elim-visible J (quote _≡ᵢ_)
2416

2517
_ : {ℓ : Level} {A : Type ℓ} {x : A} {ℓ₁ : Level}

src/1Lab/Reflection/Variables.agda

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,12 @@ private
6666
... | nothing | yes _ = just tm-var
6767
... | nothing | no _ = nothing
6868

69+
fzero' : {n} Fin (suc n)
70+
fzero' = fzero
71+
6972
fin-term : Nat Term
70-
fin-term zero = con (quote fzero) (unknown h∷ [])
71-
fin-term (suc n) = con (quote fsuc) (unknown h∷ fin-term n v∷ [])
73+
fin-term zero = def (quote fzero') (unknown h∷ [])
74+
fin-term (suc n) = def (quote fsuc) (unknown h∷ fin-term n v∷ [])
7275

7376
env-rec : (Mot : Nat Type b)
7477
( {n} Mot n A Mot (suc n))

src/1Lab/Type.lagda.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,5 +138,8 @@ instance
138138
Number-Lift : ∀ {ℓ ℓ'} {A : Type ℓ} → ⦃ Number A ⦄ → Number (Lift ℓ' A)
139139
Number-Lift {ℓ' = ℓ'} ⦃ a ⦄ .Number.Constraint n = Lift ℓ' (a .Number.Constraint n)
140140
Number-Lift ⦃ a ⦄ .Number.fromNat n ⦃ lift c ⦄ = lift (a .Number.fromNat n ⦃ c ⦄)
141+
142+
absurdω : {A : Typeω} → .⊥ → A
143+
absurdω ()
141144
```
142145
-->

src/Algebra/Group/Instances/Cyclic.lagda.md

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@ open import Cat.Prelude
1212
open import Data.Int.Divisible
1313
open import Data.Int.Universal
1414
open import Data.Fin.Closure
15+
open import Data.Fin.Product
1516
open import Data.Int.DivMod
1617
open import Data.Fin
1718
open import Data.Int hiding (Positive)
19+
open import Data.Irr
1820
open import Data.Nat
1921
2022
open represents-subgroup
@@ -182,17 +184,14 @@ $x : \ZZ$ to the representative of its congruence class modulo $n$,
182184
$x \% n$.
183185

184186
```agda
185-
ℤ/n≃ℕ<n : ∀ n → .⦃ Positive n ⦄ → ⌞ ℤ/ n ⌟ ≃ ℕ< n
186-
ℤ/n≃ℕ<n n .fst = Coeq-rec (λ i → i %ℤ n , x%ℤy<y i n)
187-
λ (x , y , p) → Σ-prop-path! (divides-diff→same-rem n x y p)
188-
ℤ/n≃ℕ<n n .snd = is-iso→is-equiv $ iso
189-
(λ (i , p) → inc (pos i))
190-
(λ i → Σ-prop-path! (ℕ<-%ℤ i))
191-
(elim! λ i → quot (same-rem→divides-diff n (pos (i %ℤ n)) i
192-
(ℕ<-%ℤ (_ , x%ℤy<y i n))))
193-
194187
Finite-ℤ/n : ∀ n → .⦃ Positive n ⦄ → ⌞ ℤ/ n ⌟ ≃ Fin n
195-
Finite-ℤ/n n = ℤ/n≃ℕ<n n ∙e Fin≃ℕ< e⁻¹
188+
Finite-ℤ/n n .fst = Coeq-rec (λ i → from-ℕ< (i %ℤ n , x%ℤy<y i n))
189+
λ (x , y , p) → fin-ap (divides-diff→same-rem n x y p)
190+
Finite-ℤ/n n .snd = is-iso→is-equiv $ iso
191+
(λ (fin i) → inc (pos i))
192+
(λ i → fin-ap (Fin-%ℤ i))
193+
(elim! λ i → quot (same-rem→divides-diff n (pos (i %ℤ n)) i
194+
(Fin-%ℤ (fin _ ⦃ forget (x%ℤy<y i n) ⦄))))
196195
```
197196

198197
Using this and the fact that $([2] \simeq [2]) \simeq [2!] = [2]$,
@@ -229,8 +228,6 @@ equivalences:
229228
ℤ/2≡S₂ = ∫-Path ℤ/2→S₂ $
230229
equiv-cancell (Fin-permutations 2 .snd)
231230
(equiv-cancelr ((Finite-ℤ/n 2 e⁻¹) .snd)
232-
(subst is-equiv (ext λ where
233-
fzero → refl
234-
(fsuc fzero) → refl)
231+
(subst is-equiv (ext (indexₚ (refl , refl , tt)))
235232
id-equiv))
236233
```

src/Algebra/Group/NAry.lagda.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,11 @@ module _ {ℓ} {T : Type ℓ} (G : Group-on T) where
7777
→ f i ≡ x
7878
→ (∀ j → ¬ i ≡ j → f j ≡ G.unit)
7979
→ ∑ G f ≡ x
80-
∑-diagonal-lemma {suc n} fzero f f0=x fj=0 =
80+
∑-diagonal-lemma i _ _ _ with fin-view i
81+
∑-diagonal-lemma {suc n} _ f f0=x fj=0 | zero =
8182
G.elimr ( ∑-path {n = n} G (λ i → fj=0 (fsuc i) fzero≠fsuc)
8283
∙ ∑-zero {n = n} G) ∙ f0=x
83-
∑-diagonal-lemma {suc n} (fsuc i) {x} f fj=x f≠i=0 =
84+
∑-diagonal-lemma {suc n} _ {x} f fj=x f≠i=0 | suc i =
8485
f fzero G.⋆ ∑ {n} G (λ e → f (fsuc e)) ≡⟨ G.eliml (f≠i=0 fzero λ e → fzero≠fsuc (sym e)) ⟩
8586
∑ {n} G (λ e → f (fsuc e)) ≡⟨ ∑-diagonal-lemma {n} i (λ e → f (fsuc e)) fj=x (λ j i≠j → f≠i=0 (fsuc j) (λ e → i≠j (fsuc-inj e))) ⟩
8687
x ∎

src/Algebra/Ring/Module/Multilinear.lagda.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -354,14 +354,12 @@ proofs of linearity.
354354
→ Multilinear-map (suc n) Ms N
355355
curry-multilinear-map lin = ml where
356356
ml : Multilinear-map (suc n) _ _
357-
ml .map = λ x → lin .map x .map
358-
ml .linearₚ = tabulateₚ λ where
359-
fzero xs r x y →
360-
ap (λ e → applyᶠ (e .map) (xs .snd)) (Linear-map.linear lin r x y)
357+
ml .map x = lin .map x .map
358+
ml .linearₚ = tabulateₚ λ i xs r x y → case fin-view i of λ where
359+
zero → ap (λ e → applyᶠ (e .map) (xs .snd)) (Linear-map.linear lin r x y)
361360
·· apply-zipᶠ _ _ _ _
362361
·· ap₂ N._+_ (apply-mapᶠ _ _ _) refl
363-
(fsuc i) xs r x y →
364-
linear-at (lin .map (xs .fst)) i (xs .snd) r x y
362+
(suc i) → linear-at (lin .map (xs .fst)) i (xs .snd) r x y
365363
366364
uncurry-multilinear-map
367365
: Multilinear-map (suc n) Ms N

src/Algebra/Ring/Solver.agda

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,9 @@ module Impl {ℓ} {R : Type ℓ} (cring : CRing-on R) where
216216
normal-coe {suc n} x = poly (∅ *x+ₙ normal-coe x)
217217

218218
normal-var : {n} Fin n Normal n
219-
normal-var fzero = poly ((∅ *x+ 1n) *x+ 0n)
220-
normal-var (fsuc f) = poly (∅ *x+ₙ normal-var f)
219+
normal-var i with fin-view i
220+
... | zero = poly ((∅ *x+ 1n) *x+ 0n)
221+
... | suc f = poly (∅ *x+ₙ normal-var f)
221222

222223
normal : {n} Polynomial n Normal n
223224
normal (op [+] x y) = normal x +ₙ normal y
@@ -381,12 +382,13 @@ module Impl {ℓ} {R : Type ℓ} (cring : CRing-on R) where
381382
sound-coe c (x ∷ ρ) = ∅*x+ₙ-hom (normal-coe c) x ρ ∙ sound-coe c ρ
382383

383384
sound-var : {n} (j : Fin n) ρ En (normal-var j) ρ ≡ lookup ρ j
384-
sound-var fzero (x ∷ ρ) =
385+
sound-var i _ with fin-view i
386+
sound-var _ (x ∷ ρ) | zero =
385387
Ep (∅ *x+ 1n) (x ∷ ρ) R.* x R.+ En 0n ρ ≡⟨ R.elimr (0n-hom ρ) ⟩
386388
⌜ Ep (∅ *x+ 1n) (x ∷ ρ) ⌝ R.* x ≡⟨ ap! (R.eliml R.*-zerol ∙ 1n-hom ρ) ⟩
387389
R.1r R.* x ≡⟨ R.*-idl ⟩
388390
x ∎
389-
sound-var (fsuc j) (x ∷ ρ) = ∅*x+ₙ-hom (normal-var j) x ρ ∙ sound-var j ρ
391+
sound-var _ (x ∷ ρ) | suc j = ∅*x+ₙ-hom (normal-var j) x ρ ∙ sound-var j ρ
390392

391393
sound : {n} (p : Polynomial n) ρ En (normal p) ρ ≡ ⟦ p ⟧ ρ
392394
sound (op [+] p q) ρ = +ₙ-hom (normal p) (normal q) ρ ∙ ap₂ R._+_ (sound p ρ) (sound q ρ)

src/Cat/Diagram/Product/Finite.lagda.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,10 @@ Cartesian→standard-finite-products F = prod where
6060
F-apex {suc (suc n)} F = F fzero ⊗₀ F-apex (λ e → F (fsuc e))
6161
6262
F-pi : ∀ {n} (F : Fin n → Ob) (i : Fin n) → Hom (F-apex F) (F i)
63-
F-pi {suc zero} F fzero = id
64-
F-pi {suc (suc n)} F fzero = Cart.π₁
65-
F-pi {suc (suc n)} F (fsuc i) = F-pi (λ e → F (fsuc e)) i ∘ Cart.π₂
63+
F-pi F i with fin-view i
64+
F-pi {suc zero} F .fzero | zero = id
65+
F-pi {suc (suc n)} F .fzero | zero = Cart.π₁
66+
F-pi {suc (suc n)} F .(fsuc i) | suc i = F-pi (λ e → F (fsuc e)) i ∘ Cart.π₂
6667
6768
F-mult : ∀ {Y} {n} (F : Fin n → Ob)
6869
→ ((i : Fin n) → Hom Y (F i)) → Hom Y (F-apex F)
@@ -72,9 +73,11 @@ Cartesian→standard-finite-products F = prod where
7273
7374
F-commute : ∀ {Y} {n} (F : Fin n → Ob) (f : (i : Fin n) → Hom Y (F i))
7475
→ ∀ i → F-pi F i ∘ F-mult F f ≡ f i
75-
F-commute {n = suc zero} F f fzero = idl (f fzero)
76-
F-commute {n = suc (suc n)} F f fzero = Cart.π₁∘⟨⟩
77-
F-commute {n = suc (suc n)} F f (fsuc i) = pullr Cart.π₂∘⟨⟩ ∙ F-commute (λ e → F (fsuc e)) (λ e → f (fsuc e)) i
76+
F-commute F f i with fin-view i
77+
F-commute {n = suc zero} F f .fzero | zero = idl (f fzero)
78+
F-commute {n = suc (suc n)} F f .fzero | zero = Cart.π₁∘⟨⟩
79+
F-commute {n = suc (suc n)} F f .(fsuc i) | suc i =
80+
pullr Cart.π₂∘⟨⟩ ∙ F-commute (λ e → F (fsuc e)) (λ e → f (fsuc e)) i
7881
7982
F-unique
8083
: ∀ {Y} {n} (F : Fin n → Ob) (f : (i : Fin n) → Hom Y (F i))

src/Cat/Instances/Shape/Cospan.lagda.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
open import Cat.Prelude
44
open import Cat.Finite
55
6+
open import Data.Fin.Product
67
open import Data.Fin.Finite
8+
open import Data.Dec.Base
79
open import Data.Fin
810
```
911
-->
@@ -12,6 +14,7 @@ open import Data.Fin
1214
module Cat.Instances.Shape.Cospan where
1315
```
1416

17+
1518
# The "cospan" category
1619

1720
A _cospan_ in a category $\cC$ is a pair of morphisms $a \xto{f} c
@@ -97,12 +100,8 @@ instance
97100
i .fst cs-a = 0
98101
i .fst cs-b = 1
99102
i .fst cs-c = 2
100-
i .snd .is-iso.inv fzero = cs-a
101-
i .snd .is-iso.inv (fsuc fzero) = cs-b
102-
i .snd .is-iso.inv (fsuc (fsuc fzero)) = cs-c
103-
i .snd .is-iso.rinv fzero = refl
104-
i .snd .is-iso.rinv (fsuc fzero) = refl
105-
i .snd .is-iso.rinv (fsuc (fsuc fzero)) = refl
103+
i .snd .is-iso.inv = indexₚ (cs-a , cs-b , cs-c , tt)
104+
i .snd .is-iso.rinv = indexₚ (refl , refl , refl , tt)
106105
i .snd .is-iso.linv cs-a = refl
107106
i .snd .is-iso.linv cs-b = refl
108107
i .snd .is-iso.linv cs-c = refl

src/Cat/Instances/Simplex.lagda.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ unquoteDecl H-Level-Δ-map = declare-record-hlevel 2 H-Level-Δ-map (quote Δ-ma
4646
→ f ≡ g
4747
Δ-map-path p i .map x = p x i
4848
Δ-map-path {f = f} {g} p i .ascending x y w =
49-
is-prop→pathp (λ j → Nat.≤-is-prop {to-nat (p x j)} {to-nat (p y j)})
49+
is-prop→pathp (λ j → Nat.≤-is-prop {p x j .lower} {p y j .lower})
5050
(f .ascending x y w) (g .ascending x y w) i
5151
```
5252
-->

0 commit comments

Comments
 (0)