Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 113 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,43 @@ Additions to existing modules
inverseʳ-uniqueᴹ : x +ᴹ y ≈ 0ᴹ → y ≈ -ᴹ x
```

* Added new functions and proofs to `Algebra.Construct.Flip.Op`:
```agda
zero : Zero ≈ ε ∙ → Zero ≈ ε (flip ∙)
distributes : (≈ DistributesOver ∙) + → (≈ DistributesOver (flip ∙)) +
isSemiringWithoutAnnihilatingZero : IsSemiringWithoutAnnihilatingZero + * 0# 1# →
IsSemiringWithoutAnnihilatingZero + (flip *) 0# 1#
isSemiring : IsSemiring + * 0# 1# → IsSemiring + (flip *) 0# 1#
isCommutativeSemiring : IsCommutativeSemiring + * 0# 1# →
IsCommutativeSemiring + (flip *) 0# 1#
isCancellativeCommutativeSemiring : IsCancellativeCommutativeSemiring + * 0# 1# →
IsCancellativeCommutativeSemiring + (flip *) 0# 1#
isIdempotentSemiring : IsIdempotentSemiring + * 0# 1# →
IsIdempotentSemiring + (flip *) 0# 1#
isQuasiring : IsQuasiring + * 0# 1# → IsQuasiring + (flip *) 0# 1#
isRingWithoutOne : IsRingWithoutOne + * - 0# → IsRingWithoutOne + (flip *) - 0#
isNonAssociativeRing : IsNonAssociativeRing + * - 0# 1# →
IsNonAssociativeRing + (flip *) - 0# 1#
isRing : IsRing ≈ + * - 0# 1# → IsRing ≈ + (flip *) - 0# 1#
isNearring : IsNearring + * 0# 1# - → IsNearring + (flip *) 0# 1# -
isCommutativeRing : IsCommutativeRing + * - 0# 1# →
IsCommutativeRing + (flip *) - 0# 1#
semiringWithoutAnnihilatingZero : SemiringWithoutAnnihilatingZero a ℓ →
SemiringWithoutAnnihilatingZero a ℓ
commutativeSemiring : CommutativeSemiring a ℓ → CommutativeSemiring a ℓ
cancellativeCommutativeSemiring : CancellativeCommutativeSemiring a ℓ →
CancellativeCommutativeSemiring a ℓ
idempotentSemiring : IdempotentSemiring a ℓ → IdempotentSemiring a ℓ
quasiring : Quasiring a ℓ → Quasiring a ℓ
ringWithoutOne : RingWithoutOne a ℓ → RingWithoutOne a ℓ
nonAssociativeRing : NonAssociativeRing a ℓ → NonAssociativeRing a ℓ
nearring : Nearring a ℓ → Nearring a ℓ
ring : Ring a ℓ → Ring a ℓ
commutativeRing : CommutativeRing a ℓ → CommutativeRing a ℓ
```

* In `Algebra.Properties.Magma.Divisibility`:

```agda
∣ˡ-respʳ-≈ : _∣ˡ_ Respectsʳ _≈_
∣ˡ-respˡ-≈ : _∣ˡ_ Respectsˡ _≈_
Expand Down Expand Up @@ -355,6 +391,68 @@ Additions to existing modules
```

* In `Data.Fin.Properties`:
the proof that an injection from a type `A` into `Fin n` induces a
decision procedure for `_≡_` on `A` has been generalized to other
equivalences over `A` (i.e. to arbitrary setoids), and renamed from
`eq?` to the more descriptive `inj⇒≟` and `inj⇒decSetoid`.

* Added new proofs in `Data.Fin.Properties`:
```
1↔⊤ : Fin 1 ↔ ⊤

0≢1+n : zero ≢ suc i

↑ˡ-injective : i ↑ˡ n ≡ j ↑ˡ n → i ≡ j
↑ʳ-injective : n ↑ʳ i ≡ n ↑ʳ j → i ≡ j
finTofun-funToFin : funToFin ∘ finToFun ≗ id
funTofin-funToFun : finToFun (funToFin f) ≗ f
^↔→ : Extensionality _ _ → Fin (m ^ n) ↔ (Fin n → Fin m)

toℕ-mono-< : i < j → toℕ i ℕ.< toℕ j
toℕ-mono-≤ : i ≤ j → toℕ i ℕ.≤ toℕ j
toℕ-cancel-≤ : toℕ i ℕ.≤ toℕ j → i ≤ j
toℕ-cancel-< : toℕ i ℕ.< toℕ j → i < j

toℕ-combine : toℕ (combine i j) ≡ k ℕ.* toℕ i ℕ.+ toℕ j
combine-injectiveˡ : combine i j ≡ combine k l → i ≡ k
combine-injectiveʳ : combine i j ≡ combine k l → j ≡ l
combine-injective : combine i j ≡ combine k l → i ≡ k × j ≡ l
combine-surjective : ∀ i → ∃₂ λ j k → combine j k ≡ i
combine-monoˡ-< : i < j → combine i k < combine j l

ℕ-ℕ≡toℕ‿ℕ- : n ℕ-ℕ i ≡ toℕ (n ℕ- i)

punchIn-mono-≤ : ∀ i (j k : Fin n) → j ≤ k → punchIn i j ≤ punchIn i k
punchIn-cancel-≤ : ∀ i (j k : Fin n) → punchIn i j ≤ punchIn i k → j ≤ k
punchOut-mono-≤ : (i≢j : i ≢ j) (i≢k : i ≢ k) → j ≤ k → punchOut i≢j ≤ punchOut i≢k
punchOut-cancel-≤ : (i≢j : i ≢ j) (i≢k : i ≢ k) → punchOut i≢j ≤ punchOut i≢k → j ≤ k

lower₁-injective : lower₁ i n≢i ≡ lower₁ j n≢j → i ≡ j
pinch-injective : suc i ≢ j → suc i ≢ k → pinch i j ≡ pinch i k → j ≡ k

i<1+i : i < suc i

injective⇒≤ : ∀ {f : Fin m → Fin n} → Injective f → m ℕ.≤ n
<⇒notInjective : ∀ {f : Fin m → Fin n} → n ℕ.< m → ¬ (Injective f)
ℕ→Fin-notInjective : ∀ (f : ℕ → Fin n) → ¬ (Injective f)
cantor-schröder-bernstein : ∀ {f : Fin m → Fin n} {g : Fin n → Fin m} → Injective f → Injective g → m ≡ n

cast-is-id : cast eq k ≡ k
subst-is-cast : subst Fin eq k ≡ cast eq k
cast-trans : cast eq₂ (cast eq₁ k) ≡ cast (trans eq₁ eq₂) k
```

* Added new functions in `Data.Integer.Base`:
```
_^_ : ℤ → ℕ → ℤ

+-0-rawGroup : Rawgroup 0ℓ 0ℓ

*-rawMagma : RawMagma 0ℓ 0ℓ
*-1-rawMonoid : RawMonoid 0ℓ 0ℓ
```

* Added new proofs in `Data.Integer.Properties`:
```agda
cast-involutive : .(eq₁ : m ≡ n) .(eq₂ : n ≡ m) → ∀ k → cast eq₁ (cast eq₂ k) ≡ k
inject!-injective : Injective _≡_ _≡_ inject!
Expand Down Expand Up @@ -478,6 +576,11 @@ Additions to existing modules
map-id : map id ≗ id
```

* In `Data.Nat.Combinatorics.Specification`:
```agda
k![n∸k]!∣n! : k ≤ n → k ! * (n ∸ k) ! ∣ n !
```

* In `Data.Product.Function.Dependent.Propositional`:
```agda
Σ-↪ : (I↪J : I ↪ J) → (∀ {j} → A (from I↪J j) ↪ B j) → Σ I A ↪ Σ J B
Expand All @@ -502,6 +605,16 @@ Additions to existing modules
HomoProduct n A = HomoProduct′ n (const A)
```

* In `Data.Sum.Relation.Binary.LeftOrder` :
```agda
⊎-<-wellFounded : WellFounded ∼₁ → WellFounded ∼₂ → WellFounded (∼₁ ⊎-< ∼₂)
```

* in `Data.Sum.Relation.Binary.Pointwise` :
```agda
⊎-wellFounded : WellFounded ∼₁ → WellFounded ∼₂ → WellFounded (Pointwise ∼₁ ∼₂)
```

* In `Data.Vec.Properties`:
```agda
toList-injective : .(m=n : m ≡ n) → (xs : Vec A m) (ys : Vec A n) → toList xs ≡ toList ys → xs ≈[ m=n ] ys
Expand Down
Loading