Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open subschemes #1096

Merged
merged 37 commits into from
Mar 16, 2024
Merged
Show file tree
Hide file tree
Changes from 29 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
9dd7c6a
(wip) for Zariski coverage on CommRing
MatthiasHu Nov 27, 2023
5aa46d8
pullback stability
mzeuner Nov 30, 2023
5e0cb35
only zero case left
mzeuner Dec 4, 2023
131c457
finish zero case
mzeuner Dec 4, 2023
036a323
def standard affine open
mzeuner Jan 18, 2024
484231b
finish standard affine opens
mzeuner Jan 19, 2024
e8fc66d
towards opens of affines
mzeuner Jan 22, 2024
bd1223a
discussion
mzeuner Jan 23, 2024
a59b341
little progress
mzeuner Jan 24, 2024
911c9ac
towards separatedness
mzeuner Jan 26, 2024
2e3ed1b
separatedness
mzeuner Jan 29, 2024
06bec07
locality
mzeuner Jan 29, 2024
fb225ce
towards aff cover
mzeuner Jan 31, 2024
96b6016
give up
mzeuner Jan 31, 2024
2e19a72
finish
mzeuner Feb 1, 2024
9f02434
cleanup
mzeuner Feb 1, 2024
e582d07
use inline ring solver
mzeuner Feb 26, 2024
a340591
fix
mzeuner Feb 26, 2024
e286103
more fixes
mzeuner Feb 26, 2024
b43c464
fix accidentally public module
MatthiasHu Feb 27, 2024
13cc5e8
avoid code duplication
MatthiasHu Feb 27, 2024
05bec87
improve comment
MatthiasHu Feb 27, 2024
78b463c
slightly improve comment
MatthiasHu Feb 27, 2024
855146b
named module StandardOpens
MatthiasHu Feb 27, 2024
0e100d7
indent by two spaces
MatthiasHu Feb 27, 2024
87db220
less whitespace
MatthiasHu Feb 27, 2024
76d4035
avoid duplication in PosetDownset
MatthiasHu Feb 27, 2024
56e2582
fix copy-paste errors in comment
MatthiasHu Feb 29, 2024
fbe4f93
cleanup JoinMap
MatthiasHu Feb 29, 2024
c051569
don't re-prove monoid lemmas
MatthiasHu Feb 29, 2024
cc9b294
slightly clearer comment
MatthiasHu Feb 29, 2024
758e50f
polish module definition
MatthiasHu Feb 29, 2024
0464409
cleanup imports
MatthiasHu Feb 29, 2024
bec3d81
cleanup some more
MatthiasHu Feb 29, 2024
d4d2196
forgotten while renaming ZarMap -> Support
MatthiasHu Feb 29, 2024
ddc4fa5
upstream 1 lemmas
mzeuner Mar 4, 2024
ef4ae22
meet map
mzeuner Mar 4, 2024
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
15 changes: 12 additions & 3 deletions Cubical/Algebra/DistLattice/BigOps.agda
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
-- define ⋁ and ⋀ as the bigOps of a Ring when interpreted
-- as an additive/multiplicative monoid
-- define ⋁ and ⋀ as the bigOps of a DistLattice when interpreted
-- as a join/meet semilattice

{-# OPTIONS --safe #-}
module Cubical.Algebra.DistLattice.BigOps where
Expand Down Expand Up @@ -34,7 +34,7 @@ open import Cubical.Relation.Binary.Order.Poset

private
variable
ℓ : Level
ℓ' : Level

module KroneckerDelta (L' : DistLattice ℓ) where
private
Expand Down Expand Up @@ -107,6 +107,15 @@ module Join (L' : DistLattice ℓ) where
≤-⋁Ext = ≤-bigOpExt


module JoinMap {L : DistLattice ℓ} {L' : DistLattice ℓ'} (φ : DistLatticeHom L L') where
private module L = Join L
private module L' = Join L'
open BigOpMap (LatticeHom→JoinSemilatticeHom φ)

pres⋁ : {n : ℕ} (U : FinVec ⟨ L ⟩ n) → φ .fst (L.⋁ U) ≡ L'.⋁ (φ .fst ∘ U)
pres⋁ = presBigOp

Comment on lines +110 to +116
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems weird to have this lemma only for Join and not for Meet. But this was already the case for other definitions in this file (and I find it pretty hard to see which ones)...

I guess this is part of the general question how to handle the duality between join and meet nicely.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added the analogous case for meets of this one: ef4ae22

I did treat meets and joins symmetrically, but I never ended up using big meets, so a bunch of lemmas are only done for big joins. After all, they are what you need to define a "cover", so arguably the more useful one...


module Meet (L' : DistLattice ℓ) where
private
L = fst L'
Expand Down
70 changes: 70 additions & 0 deletions Cubical/Algebra/DistLattice/Downset.agda
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{-# OPTIONS --safe #-}
module Cubical.Algebra.DistLattice.Downset where

open import Cubical.Foundations.Prelude
open import Cubical.Foundations.HLevels
open import Cubical.Foundations.Isomorphism
open import Cubical.Foundations.Powerset

open import Cubical.Data.Sigma

open import Cubical.Algebra.Semigroup
open import Cubical.Algebra.Monoid
open import Cubical.Algebra.CommMonoid
open import Cubical.Algebra.Semilattice
open import Cubical.Algebra.Lattice
open import Cubical.Algebra.DistLattice.Base

open import Cubical.Relation.Binary.Order.Poset

open Iso

private
variable
ℓ ℓ' : Level

module DistLatticeDownset (L' : DistLattice ℓ) where

open DistLatticeStr ⦃...⦄
open PosetStr ⦃...⦄ hiding (is-set)
open JoinSemilattice (Lattice→JoinSemilattice (DistLattice→Lattice L'))
open MeetSemilattice (Lattice→MeetSemilattice (DistLattice→Lattice L')) hiding (_≤_ ; IndPoset)
open LatticeTheory (DistLattice→Lattice L')
open Order (DistLattice→Lattice L')
open IsLatticeHom

-- importing other downset related stuff
open PosetDownset IndPoset public

private
L = L' .fst
LPoset = IndPoset
instance
_ = L' .snd
_ = LPoset .snd

↓ᴰᴸ : L → DistLattice ℓ
fst (↓ᴰᴸ u) = ↓ u
DistLatticeStr.0l (snd (↓ᴰᴸ u)) = 0l , ∨lLid u
DistLatticeStr.1l (snd (↓ᴰᴸ u)) = u , is-refl u
DistLatticeStr._∨l_ (snd (↓ᴰᴸ u)) (v , v≤u) (w , w≤u) =
v ∨l w , ∨lIsMax _ _ _ v≤u w≤u
DistLatticeStr._∧l_ (snd (↓ᴰᴸ u)) (v , v≤u) (w , _) =
v ∧l w , is-trans _ _ _ (≤m→≤j _ _ (∧≤RCancel _ _)) v≤u
DistLatticeStr.isDistLattice (snd (↓ᴰᴸ u)) = makeIsDistLattice∧lOver∨l
(isSetΣSndProp is-set λ _ → is-prop-valued _ _)
(λ _ _ _ → Σ≡Prop (λ _ → is-prop-valued _ _) (∨lAssoc _ _ _))
(λ _ → Σ≡Prop (λ _ → is-prop-valued _ _) (∨lRid _))
(λ _ _ → Σ≡Prop (λ _ → is-prop-valued _ _) (∨lComm _ _))
(λ _ _ _ → Σ≡Prop (λ _ → is-prop-valued _ _) (∧lAssoc _ _ _))
(λ (_ , v≤u) → Σ≡Prop (λ _ → is-prop-valued _ _) (≤j→≤m _ _ v≤u))
(λ _ _ → Σ≡Prop (λ _ → is-prop-valued _ _) (∧lComm _ _))
(λ _ _ → Σ≡Prop (λ _ → is-prop-valued _ _) (∧lAbsorb∨l _ _))
(λ _ _ _ → Σ≡Prop (λ _ → is-prop-valued _ _) (∧lLdist∨l _ _ _))

toDownHom : (u : L) → DistLatticeHom L' (↓ᴰᴸ u)
fst (toDownHom u) w = (u ∧l w) , ≤m→≤j _ _ (∧≤RCancel _ _)
pres0 (snd (toDownHom u)) = Σ≡Prop (λ _ → is-prop-valued _ _) (0lRightAnnihilates∧l _)
pres1 (snd (toDownHom u)) = Σ≡Prop (λ _ → is-prop-valued _ _) (∧lRid _)
pres∨l (snd (toDownHom u)) v w = Σ≡Prop (λ _ → is-prop-valued _ _) (∧lLdist∨l _ _ _)
pres∧l (snd (toDownHom u)) v w = Σ≡Prop (λ _ → is-prop-valued _ _) (∧lLdist∧l u v w)
14 changes: 14 additions & 0 deletions Cubical/Algebra/Lattice/Base.agda
Original file line number Diff line number Diff line change
Expand Up @@ -231,5 +231,19 @@ LatticePath = ∫ 𝒮ᴰ-Lattice .UARel.ua
Lattice→JoinSemilattice : Lattice ℓ → Semilattice ℓ
Lattice→JoinSemilattice (A , latticestr _ _ _ _ L) = semilattice _ _ _ (L .IsLattice.joinSemilattice )

LatticeHom→JoinSemilatticeHom : {L : Lattice ℓ} {L' : Lattice ℓ'}
→ LatticeHom L L'
→ SemilatticeHom (Lattice→JoinSemilattice L) (Lattice→JoinSemilattice L')
fst (LatticeHom→JoinSemilatticeHom φ) = fst φ
IsMonoidHom.presε (snd (LatticeHom→JoinSemilatticeHom φ)) = φ .snd .IsLatticeHom.pres0
IsMonoidHom.pres· (snd (LatticeHom→JoinSemilatticeHom φ)) = φ .snd .IsLatticeHom.pres∨l

Lattice→MeetSemilattice : Lattice ℓ → Semilattice ℓ
Lattice→MeetSemilattice (A , latticestr _ _ _ _ L) = semilattice _ _ _ (L .IsLattice.meetSemilattice )

LatticeHom→MeetSemilatticeHom : {L : Lattice ℓ} {L' : Lattice ℓ'}
→ LatticeHom L L'
→ SemilatticeHom (Lattice→MeetSemilattice L) (Lattice→MeetSemilattice L')
fst (LatticeHom→MeetSemilatticeHom φ) = fst φ
IsMonoidHom.presε (snd (LatticeHom→MeetSemilatticeHom φ)) = φ .snd .IsLatticeHom.pres1
IsMonoidHom.pres· (snd (LatticeHom→MeetSemilatticeHom φ)) = φ .snd .IsLatticeHom.pres∧l
48 changes: 34 additions & 14 deletions Cubical/Algebra/Lattice/Properties.agda
Original file line number Diff line number Diff line change
Expand Up @@ -29,24 +29,41 @@ private
ℓ ℓ' ℓ'' ℓ''' : Level

module LatticeTheory (L' : Lattice ℓ) where
private L = fst L'
open LatticeStr (snd L')
private L = fst L'
open LatticeStr (snd L')

0lLeftAnnihilates∧l : ∀ (x : L) → 0l ∧l x ≡ 0l
0lLeftAnnihilates∧l x = 0l ∧l x ≡⟨ cong (0l ∧l_) (sym (∨lLid _)) ⟩
0l ∧l (0l ∨l x) ≡⟨ ∧lAbsorb∨l _ _ ⟩
0l ∎

0lRightAnnihilates∧l : ∀ (x : L) → x ∧l 0l ≡ 0l
0lRightAnnihilates∧l _ = ∧lComm _ _ ∙ 0lLeftAnnihilates∧l _

1lLeftAnnihilates∨l : ∀ (x : L) → 1l ∨l x ≡ 1l
1lLeftAnnihilates∨l x = 1l ∨l x ≡⟨ cong (1l ∨l_) (sym (∧lLid _)) ⟩
1l ∨l (1l ∧l x) ≡⟨ ∨lAbsorb∧l _ _ ⟩
1l ∎

0lLeftAnnihilates∧l : ∀ (x : L) → 0l ∧l x ≡ 0l
0lLeftAnnihilates∧l x = 0l ∧l x ≡⟨ cong (0l ∧l_) (sym (∨lLid _)) ⟩
0l ∧l (0l ∨l x) ≡⟨ ∧lAbsorb∨l _ _ ⟩
0l ∎
1lRightAnnihilates∨l : ∀ (x : L) → x ∨l 1l ≡ 1l
1lRightAnnihilates∨l _ = ∨lComm _ _ ∙ 1lLeftAnnihilates∨l _

0lRightAnnihilates∧l : ∀ (x : L) → x ∧l 0l ≡ 0l
0lRightAnnihilates∧l _ = ∧lComm _ _ ∙ 0lLeftAnnihilates∧l _

1lLeftAnnihilates∨l : ∀ (x : L) → 1l ∨l x ≡ 1l
1lLeftAnnihilates∨l x = 1l ∨l x ≡⟨ cong (1l ∨l_) (sym (∧lLid _)) ⟩
1l ∨l (1l ∧l x) ≡⟨ ∨lAbsorb∧l _ _ ⟩
1l ∎
∧lCommAssocl : ∀ x y z → x ∧l (y ∧l z) ≡ y ∧l (x ∧l z)
∧lCommAssocl x y z = ∧lAssoc x y z ∙∙ congL _∧l_ (∧lComm x y) ∙∙ sym (∧lAssoc y x z)

1lRightAnnihilates∨l : ∀ (x : L) → x ∨l 1l ≡ 1l
1lRightAnnihilates∨l _ = ∨lComm _ _ ∙ 1lLeftAnnihilates∨l _
∧lCommAssocr : ∀ x y z → (x ∧l y) ∧l z ≡ (x ∧l z) ∧l y
∧lCommAssocr x y z = sym (∧lAssoc x y z) ∙∙ congR _∧l_ (∧lComm y z) ∙∙ ∧lAssoc x z y

∧lCommAssocr2 : ∀ x y z → (x ∧l y) ∧l z ≡ (z ∧l y) ∧l x
∧lCommAssocr2 x y z = ∧lCommAssocr _ _ _ ∙∙ congL _∧l_ (∧lComm _ _) ∙∙ ∧lCommAssocr _ _ _

∧lCommAssocSwap : ∀ x y z w → (x ∧l y) ∧l (z ∧l w) ≡ (x ∧l z) ∧l (y ∧l w)
∧lCommAssocSwap x y z w =
∧lAssoc (x ∧l y) z w ∙∙ congL _∧l_ (∧lCommAssocr x y z) ∙∙ sym (∧lAssoc (x ∧l z) y w)

∧lLdist∧l : ∀ x y z → x ∧l (y ∧l z) ≡ (x ∧l y) ∧l (x ∧l z)
∧lLdist∧l x y z = congL _∧l_ (sym (∧lIdem _)) ∙ ∧lCommAssocSwap x x y z



Expand Down Expand Up @@ -81,6 +98,9 @@ module Order (L' : Lattice ℓ) where
∧≤LCancelJoin : ∀ x y → x ∧l y ≤j y
∧≤LCancelJoin x y = ≤m→≤j _ _ (∧≤LCancel x y)

∧≤RCancelJoin : ∀ x y → x ∧l y ≤j x
∧≤RCancelJoin x y = ≤m→≤j _ _ (∧≤RCancel x y)


module _ {L : Lattice ℓ} {M : Lattice ℓ'} (φ ψ : LatticeHom L M) where
open LatticeStr ⦃...⦄
Expand Down
Loading
Loading