Skip to content

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)