Experiments involving Miquel's theorem. Joint work with Finn Klein.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
METHOD: TABLE | |
ENCODE: Unicode | |
PROMPT: LaTeX | |
VERSION: 1.0 | |
DELIMITER: , | |
VALIDINPUTKEY: ^,.?!:;"'/\()[]{}<>$%&@*01234567890123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz | |
TERMINPUTKEY: | |
BEGINCHARACTER | |
alpha α |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(* Post's theorem in computability theory states that a subset S ⊆ ℕ is | |
decidable if both S and its complement ℕ \ S are semidecidable. | |
Just how much classical logic is needed to prove the theorem, though? | |
In this note we show that Markov's principle suffices. | |
Rather than working with subsets of ℕ we work synthetically, with | |
semidecidable and decidable truth values. (This is more general than | |
the traditional Post's theorem.) | |
*) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(* | |
A formalization of first-order logic, theories and their models. | |
As an example we formalize the language of ZF set theory and a a small fragment of ZF. | |
*) | |
(* A signature is given by function symbols, relation symbols, and their arities. *) | |
Structure Signature := | |
{ funSym : Type (* names of function symbols *) | |
; funArity : funSym -> Type (* arities of function symbols *) | |
; relSym : Type (* names of relation symbols *) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
open import Data.Nat | |
open import Data.Product | |
module example where | |
data SimpleTree (A : Set) : Set where | |
empty : SimpleTree A | |
leaf : A -> SimpleTree A | |
node : A -> SimpleTree A -> SimpleTree A -> SimpleTree A |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{- | |
Weak excluded middle states that for every propostiion P, either ¬¬P or ¬P holds. | |
We give a proof of weak excluded middle, relying just on basic facts about real numbers, | |
which we carefully state, in order to make the dependence on them transparent. | |
Some people might doubt the formalization. To convince yourself that there is no cheating, you should: | |
* Carefully read the facts listed in the RealFacts below to see that these are all | |
just familiar facts about the real numbers. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{- Here is a short demonstration on how to use Agda's solvers that automatically | |
prove equations. It seems quite impossible to find complete worked examples | |
of how Agda solvers are used. | |
Thanks go to @anormalform who helped out with these on Twitter, see | |
https://twitter.com/andrejbauer/status/1549693506922364929?s=20&t=7cb1TbB2cspIgktKXU8rng | |
I welcome improvements and additions to this file. | |
This file works with Agda 2.6.2.2 and standard-library-1.7.1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Require Import Setoid. | |
Definition coerce {A B : Type} : A = B -> A -> B. | |
Proof. | |
intros [] a. | |
exact a. | |
Defined. | |
Lemma coerce_coerce {A B : Type} (e : A = B) (b : B) : | |
coerce e (coerce (eq_sym e) b) = b. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
open import Level | |
open import Relation.Binary | |
open import Data.Product | |
open import Data.Unit | |
open import Agda.Builtin.Sigma | |
open import Relation.Binary.PropositionalEquality renaming (refl to ≡-refl; trans to ≡-trans; sym to ≡-sym; cong to ≡-cong) | |
open import Relation.Binary.PropositionalEquality.Properties | |
open import Function.Equality hiding (setoid) | |
module Epimorphism where |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
open import Data.Nat | |
open import Data.Maybe | |
open import Data.Product | |
-- An implementation of infinite queues fashioned after the von Neuman ordinals | |
module Queue where | |
infixl 5 _⊕_ |
NewerOlder