1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- -- A discussion from -- https://twitter.com/YuumuKonpaku/status/1052959340468953088
- -- Andreas, 2019-08-18, test also #1346 (infix declaration in renaming)
- -- Andreas, 2019-02-17, test alse #3432 (pattern synonyms in import directive)
- module MdJustHighlightAgdaAsHtml where
- open import Agda.Builtin.Nat
- open import Agda.Builtin.Equality
- open import Agda.Primitive public using (lzero)
- renaming (Level to ULevel; lsuc to lsucc; _⊔_ to infixl 42 _⊔_)
- Type : (i : ULevel) -> Set (lsucc i)
- Type i = Set i
- data ⊥ : Type lzero where
- module PatternSyns where
- pattern O' = zero
- pattern S n = (suc n)
- open PatternSyns using (S) renaming (O' to O)
- variable i : ULevel
- ¬ : (A : Type i) → Type i
- ¬ A = A → ⊥
- _≠_ : {A : Type i} → (A → A → Type i)
- x ≠ y = ¬ (x ≡ y)
- infix 10 _∨_
- data _∨_ {a b} (A : Type a) (B : Type b) : Set (a ⊔ b) where
- a-intro : A -> A ∨ B
- b-intro : B -> A ∨ B
- test : (x y : Nat) -> (x ≡ y) ∨ (x ≠ y)
- test O O = a-intro refl
- test O (S y) = b-intro (λ ())
- test (S x) O = b-intro (λ ())
- test (S x) (S y) with test x y
- ... | a-intro refl = a-intro refl
- ... | b-intro k = b-intro (lemma k)
- where
- lemma : {a b : Nat} -> a ≠ b -> S a ≠ S b
- lemma p refl = p refl
|