# HG changeset patch # User Shinji KONO # Date 1699446954 -32400 # Node ID a60132983557f39f3d1d9eee068cf90bb4e5188e # Parent af8f630b7e6083ab5734ea14489f93042312a75d ... diff -r af8f630b7e60 -r a60132983557 a01/lecture.ind diff -r af8f630b7e60 -r a60132983557 a02/agda-install.ind diff -r af8f630b7e60 -r a60132983557 a02/agda.ind diff -r af8f630b7e60 -r a60132983557 a02/agda/dag.agda diff -r af8f630b7e60 -r a60132983557 a02/agda/data1.agda --- a/a02/agda/data1.agda Sun Sep 24 18:02:04 2023 +0900 +++ b/a02/agda/data1.agda Wed Nov 08 21:35:54 2023 +0900 @@ -28,20 +28,20 @@ open _∧_ ex3' : {A B : Set} → ( A ∨ B ) → A ∧ B -- this is wrong -ex3' = ? +ex3' (case1 x) = ? +ex3' (case2 x) = ? ex4' : {A B : Set} → ( A ∧ B ) → A ∨ B -ex4' ab = case1 (proj1 ab ) +ex4' ⟪ a , b ⟫ = ? --- ex5 : {A B C : Set} → (( A → C ) ∨ ( B → C ) ) → ( ( A ∨ B ) → C ) is wrong ex5 : {A B C : Set} → (( A → C ) ∨ ( B → C ) ) → ( ( A ∧ B ) → C ) -ex5 (case1 a→c) ab = a→c (proj1 ab) -ex5 (case2 b→c) ab = b→c (proj2 ab) +ex5 = ? data ⊥ : Set where -⊥-elim : {A : Set } -> ⊥ -> A -⊥-elim = {!!} +⊥-elim : {A : Set } → ⊥ → A +⊥-elim () ¬_ : Set → Set ¬ A = A → ⊥ @@ -76,6 +76,36 @@ problem2 = {!!} +data Nat : Set where + zero : Nat + suc : Nat → Nat + +one : Nat +one = suc zero + +five : Nat +five = suc (suc (suc (suc (suc zero)))) + +add : ( a b : Nat ) → Nat +add zero x = x +add (suc x) y = suc ( add x y ) + +data _≡_ {A : Set } : ( x y : A ) → Set where + refl : {x : A} → x ≡ x + +test11 : add one five ≡ suc five +test11 = refl + +mul : ( a b : Nat ) → Nat +mul zero x = zero +mul (suc x) y = add y (mul x y) + +ex6 : Nat +ex6 = mul ( suc ( suc zero)) (suc ( suc ( suc zero)) ) + +ex7 : mul ( suc ( suc zero)) (suc ( suc ( suc zero)) ) ≡ suc (suc (suc (suc (suc (suc zero))))) +ex7 = refl + data Three : Set where t1 : Three t2 : Three @@ -95,27 +125,24 @@ r2 : 3Ring t2 t3 r3 : 3Ring t3 t1 -data Nat : Set where - zero : Nat - suc : Nat → Nat - -add : ( a b : Nat ) → Nat -add zero x = x -add (suc x) y = suc ( add x y ) - -mul : ( a b : Nat ) → Nat -mul zero x = zero -mul (suc x) y = add y (mul x y) - -ex6 : Nat -ex6 = mul ( suc ( suc zero)) (suc ( suc ( suc zero)) ) - data connected { V : Set } ( E : V -> V -> Set ) ( x y : V ) : Set where direct : E x y -> connected E x y indirect : { z : V } -> E x z -> connected {V} E z y -> connected E x y -dag : { V : Set } ( E : V -> V -> Set ) -> Set +dag : { V : Set } ( E : V -> V -> Set ) → Set dag {V} E = ∀ (n : V) → ¬ ( connected E n n ) lemma : ¬ (dag 3Ring ) -lemma r = r t1 ( indirect r1 (indirect r2 (direct r3 ))) +lemma r = ? + +-- t1 → t2 → t3 +-- +data 3Line : (dom cod : Three) → Set where + line1 : 3Line t1 t2 + line2 : 3Line t2 t3 + +lemma1 : dag 3Line +lemma1 = ? + + + diff -r af8f630b7e60 -r a60132983557 a02/agda/equality.agda --- a/a02/agda/equality.agda Sun Sep 24 18:02:04 2023 +0900 +++ b/a02/agda/equality.agda Wed Nov 08 21:35:54 2023 +0900 @@ -1,26 +1,26 @@ module equality where -data _==_ {A : Set } : A → A → Set where - refl : {x : A} → x == x +data _≡_ {A : Set } : A → A → Set where + refl : {x : A} → x ≡ x -ex1 : {A : Set} {x : A } → x == x +ex1 : {A : Set} {x : A } → x ≡ x ex1 = ? -ex2 : {A : Set} {x y : A } → x == y → y == x +ex2 : {A : Set} {x y : A } → x ≡ y → y ≡ x ex2 = ? -ex3 : {A : Set} {x y z : A } → x == y → y == z → x == z +ex3 : {A : Set} {x y z : A } → x ≡ y → y ≡ z → x ≡ z ex3 = {!!} -ex4 : {A B : Set} {x y : A } { f : A → B } → x == y → f x == f y +ex4 : {A B : Set} {x y : A } { f : A → B } → x ≡ y → f x ≡ f y ex4 = {!!} -subst : {A : Set } → { x y : A } → ( f : A → Set ) → x == y → f x → f y +subst : {A : Set } → { x y : A } → ( f : A → Set ) → x ≡ y → f x → f y subst {A} {x} {y} f refl fx = fx --- ex5 : {A : Set} {x y z : A } → x == y → y == z → x == z --- ex5 {A} {x} {y} {z} x==y y==z = subst (λ refl → {!!} ) x==y {!!} +-- ex5 : {A : Set} {x y z : A } → x ≡ y → y ≡ z → x ≡ z +-- ex5 {A} {x} {y} {z} x≡y y≡z = subst (λ refl → {!!} ) x≡y {!!} diff -r af8f630b7e60 -r a60132983557 a02/agda/lambda.agda diff -r af8f630b7e60 -r a60132983557 a02/agda/level1.agda diff -r af8f630b7e60 -r a60132983557 a02/agda/list.agda diff -r af8f630b7e60 -r a60132983557 a02/agda/logic.agda --- a/a02/agda/logic.agda Sun Sep 24 18:02:04 2023 +0900 +++ b/a02/agda/logic.agda Wed Nov 08 21:35:54 2023 +0900 @@ -1,3 +1,5 @@ +{-# OPTIONS --cubical-compatible --safe #-} + module logic where open import Level diff -r af8f630b7e60 -r a60132983557 a02/agda/practice-logic.agda diff -r af8f630b7e60 -r a60132983557 a02/agda/practice-nat.agda --- a/a02/agda/practice-nat.agda Sun Sep 24 18:02:04 2023 +0900 +++ b/a02/agda/practice-nat.agda Wed Nov 08 21:35:54 2023 +0900 @@ -1,3 +1,4 @@ +{-# OPTIONS --cubical-compatible --safe #-} module practice-nat where open import Data.Nat @@ -6,24 +7,29 @@ open import Relation.Binary.PropositionalEquality hiding (_⇔_) open import logic +-- data _<=_ : ℕ → ℕ → Set where +-- z<=n : {x : ℕ} → zero <= x +-- s<=s : {x y : ℕ} → x <= y → suc x <= suc y + -- hint : it has two inputs, use recursion nat-<> : { x y : ℕ } → x < y → y < x → ⊥ -nat-<> = {!!} +nat-<> (s≤s x x 0 → x < y → z * x < z * y -*<-2 {x} {y} {suc z} (s≤s z>0) x0) x0) x0) x 1 → p < p * p r15 {p} p>1 = subst (λ k → k < p * p ) m*1=m (*<-2 (<-trans a1) p>1 ) diff -r af8f630b7e60 -r a60132983557 automaton-in-agda/src/sbconst2.agda --- a/automaton-in-agda/src/sbconst2.agda Sun Sep 24 18:02:04 2023 +0900 +++ b/automaton-in-agda/src/sbconst2.agda Wed Nov 08 21:35:54 2023 +0900 @@ -1,4 +1,4 @@ --- {-# OPTIONS --cubical-compatible --safe #-} +{-# OPTIONS --cubical-compatible --safe #-} module sbconst2 where diff -r af8f630b7e60 -r a60132983557 exercise/001.ind diff -r af8f630b7e60 -r a60132983557 exercise/002.ind diff -r af8f630b7e60 -r a60132983557 exercise/003.ind diff -r af8f630b7e60 -r a60132983557 exercise/004.ind diff -r af8f630b7e60 -r a60132983557 exercise/005.ind