Let's play Agda
{-# OPTIONS --cubical-compatible #-}
module Padova2025-zh-TW.Explorations.Uncountability.Lawvere
  {A X : Set} (f : A → (A → X)) (g : X → X) where

Lawvere 不動點定理#

open import Padova2025-zh-TW.ProvingBasics.Equality.Base
open import Padova2025-zh-TW.ProvingBasics.Equality.General
open import Padova2025-zh-TW.ProvingBasics.Connectives.Existential
習題 1canary
canary : A → X
canary = {!!}
參考解答
canary : A → X
canary a = g (f a a)
習題 2fix
fix : ∃[ a ] canary ≗ f a → ∃[ x ] g x ≡ x
fix = {!!}
參考解答用到: _,_
參考解答
fix : ∃[ a ] canary ≗ f a → ∃[ x ] g x ≡ x
fix (a , p) = f a a , p a
習題 3fix₀
fix₀ : ((h : A → X) → ∃[ a ] h ≗ f a) → ∃[ x ] g x ≡ x
fix₀ = {!!}
參考解答用到: fix canary
參考解答
fix₀ : ((h : A → X) → ∃[ a ] h ≗ f a) → ∃[ x ] g x ≡ x
fix₀ split-surjectivity = fix (split-surjectivity canary)