Higgs.AutomorphismsOfOmegaWEM
J. A. Carr 2 July 2025.
The type Aut ฮฉ has a sort of weak excluded middle: Every automorphism
is either equal to not (in which case full LEM holds) or it's not
equal to it, and hence not not equal to the identity.
Full excluded middle is not provable. Many examples of Grothendieck
topoi have non-trivial automorphisms. By Johnstone, automorphisms are
in bijection with closed Boolean sublocales of ฮฉ. For example, in the
topos of digraphs, one automorphism negates truth-on-edges while
leaving vertices unchanged. Any locale with closed points (or rather,
any irreducible closed sets) in a space give automorphisms which
negate the presence of that point when possible.
On the other hand, Aut ฮฉ is sometimes a singleton. For another sheaf
topos example, consider (the locale generated by) the total order (โค, โค),
every inhabited closed sublocale is equivalent to (โค, โค) or (โ, โค).
Neither of these are boolean, so there are no nontrivial boolean
closed sublocales of ฮฉ in this topos.
{-# OPTIONS --safe --without-K #-}
open import MLTT.Plus-Properties
open import MLTT.Spartan
open import UF.ClassicalLogic
open import UF.Equiv hiding (_โ
_)
open import UF.FunExt
open import UF.Logic
open import UF.PropTrunc
open import UF.Subsingletons
open import UF.SubtypeClassifier hiding (ฮฉ)
module Higgs.AutomorphismsOfOmegaWEM
{๐ค : Universe}
(fe : Fun-Ext)
(pe : propext ๐ค)
(pt : propositional-truncations-exist)
where
open PropositionalTruncation pt hiding (_โจ_ ; โจ-elim)
open Disjunction pt
open Implication fe
open Negation {๐ค} fe
open import Higgs.InvolutionTheorem fe pe
open import Higgs.Rigidity fe pe
open import Higgs.AutomorphismsOfOmega fe pe
weak-lem-is-prop : (p : ฮฉ) โ is-prop ((โ p) holds + (โโ p) holds)
weak-lem-is-prop p = sum-of-contradictory-props
(holds-is-prop (โ p))
(holds-is-prop (โโ p))
(ฮป np nnp -> nnp np)
widespread'-has-weak-excluded-middle
: (p : ฮฉ)
โ is-widespread' pt p
โ (โ p) holds + (โโ p) holds
widespread'-has-weak-excluded-middle p w = II
where
I : ((โ p) holds + ((โ p) โ p) holds)
โ (โ p) holds + (โโ p) holds
I (inl p) = inl p
I (inr nnp) = inr (ฮป np โ np (nnp np))
II : (โ p) holds + (โโ p) holds
II = โฅโฅ-rec (weak-lem-is-prop p) I (w (โ p))
โ-has-WEM
: (x : โ)
โ (โช x โซ ๏ผ โฅ) + (โช x โซ โ โฅ)
โ-has-WEM x@(r@(R , j) , r-is-ws) = +functor IV V III
where
I : (โ r โจ (โ r โ r)) holds
I = widespread-gives-widespread' pt r r-is-ws (r โ โฅ)
II : (โ r) holds + (โ r โ r) holds โ (โ r) holds + (โโ r) holds
II (inl nr) = inl nr
II (inr nnr) = inr (ฮป nr โ nr (nnr nr))
III : (โ r) holds + (โโ r) holds
III = โฅโฅ-rec (weak-lem-is-prop r) II I
IV : (โ r) holds โ (r ๏ผ โฅ)
IV nr = ฮฉ-extensionality pe fe (ฮป R โ ๐-elim (nr R)) ๐-elim
V : (โโ r) holds โ (r โ โฅ)
V nnr refl = ๐-elim (nnr ๐-elim)
Aut-ฮฉ-has-WEM
: (๐ : Aut ฮฉ)
โ (๐ โ ๐๐) + ยฌ (๐ โ ๐๐)
Aut-ฮฉ-has-WEM ๐ = V I
where
I : (โช Aut-ฮฉ-to-โ ๐ โซ ๏ผ โฅ) + (โช Aut-ฮฉ-to-โ ๐ โซ โ โฅ)
I = โ-has-WEM (Aut-ฮฉ-to-โ ๐)
II : (โช Aut-ฮฉ-to-โ ๐ โซ ๏ผ โฅ) โ ๐ โ ๐๐
II fbot refl = โฅ-is-not-โค (fbot โปยน)
III : โ ๐ โ โค ๏ผ โค โ ๐ ๏ผ ๐๐
III = eval-at-โค-is-lc {๐} {๐๐}
IV : (โช Aut-ฮฉ-to-โ ๐ โซ โ โฅ) โ (๐ โ ๐๐) โ ๐
IV ๐-not-bot ๐-not-id = ๐-not-bot
(different-from-โค-gives-equal-โฅ fe pe (โ ๐ โ โค)
(๐-not-id โ III))
V : (โช Aut-ฮฉ-to-โ ๐ โซ ๏ผ โฅ) + (โช Aut-ฮฉ-to-โ ๐ โซ โ โฅ)
โ (๐ โ ๐๐) + ยฌ (๐ โ ๐๐)
V (inl not-id) = inl (II not-id)
V (inr not-not-id) = inr (IV not-not-id)
DNE-gives-double-negation-equality
: DNE ๐ค
โ (P : ฮฉ) โ โโ P ๏ผ P
DNE-gives-double-negation-equality dne P =
ฮฉ-extensionality pe fe (dne (P holds) (holds-is-prop P)) (ฮป p np โ np p)
EM-gives-not-is-automorphism : EM ๐ค โ is-equiv โ_
EM-gives-not-is-automorphism em = ((โ_ , I) , (โ_ , I))
where
I : (P : ฮฉ) โ โโ P ๏ผ P
I = DNE-gives-double-negation-equality
(EM-gives-DNE em)
โ' : EM ๐ค โ Aut ฮฉ
โ' em = (โ_ , EM-gives-not-is-automorphism em)
not-true-is-false : (em : EM ๐ค)
โ โฅ ๏ผ eval-at-โค (โ' em)
not-true-is-false ฮฝ = ฮฉ-extensionality pe fe ๐-elim (ฮป f โ ๐-elim (f โ))
not-id-is-not : {๐ : Aut ฮฉ}
โ (ฮฝ : ๐ โ ๐๐)
โ (em : EM ๐ค)
โ ๐ ๏ผ (โ' em)
not-id-is-not {๐@(f , f-is-equiv)} ฮฝ em = eval-at-โค-is-lc (III ฮฝ โ not-true-is-false em)
where
I : f โค ๏ผ โค โ ๐ ๏ผ ๐๐
I = eval-at-โค-is-lc {๐} {๐๐}
II : (๐ โ ๐๐) โ f โค โ โค
II ฮฝ = contrapositive I ฮฝ
III : (๐ โ ๐๐) โ f โค ๏ผ โฅ
III ฮฝ = different-from-โค-gives-equal-โฅ fe pe (f โค) (II ฮฝ)
ฮฉ-automorphism-not-id-iff-equals-not
: (๐ : Aut ฮฉ)
โ (๐ โ ๐๐) โ (โ ๐ โ ๏ผ โ_)
ฮฉ-automorphism-not-id-iff-equals-not ๐@(f , f-is-equiv) = (FW , BW)
where
FW : (๐ โ ๐๐) โ โ ๐ โ ๏ผ โ_
FW ฮฝ = ap โ_โ {๐} {โ' em} (not-id-is-not ฮฝ em)
where
em = ฮฉ-automorphism-distinct-from-๐๐-gives-EM (๐ , ฮฝ)
not-is-not-id : โ_ โ id
not-is-not-id e = โฅ-is-not-โค
(not-equal-โค-gives-equal-โฅ fe pe โค (ap (ฮป f โ f โค) e) โปยน)
BW : โ ๐ โ ๏ผ โ_ โ ๐ โ ๐๐
BW f-is-not e = not-is-not-id (f-is-not โปยน โ ap โ_โ e)