Mercurial > hg > Members > kono > Proof > category
diff system-f.agda @ 783:bded2347efa4
CCC by equation
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 17 Apr 2019 12:03:45 +0900 |
parents | 6b4bd02efd80 |
children |
line wrap: on
line diff
--- a/system-f.agda Fri Mar 08 18:09:11 2019 +0900 +++ b/system-f.agda Wed Apr 17 12:03:45 2019 +0900 @@ -12,6 +12,8 @@ T X = λ(x y : X) → x F : {l : Level} (X : Set l) → Bool X + + F X = λ(x y : X) → y D : {l : Level} → {U : Set l} → U → U → Bool U → U @@ -27,7 +29,7 @@ _×_ {l} U V = {X : Set l} → (U → V → X) → X <_,_> : {l : Level} {U V : Set l} → U → V → (U × V) -<_,_> {l} {U} {V} u v = λ X → λ(x : U → V → X) → x u v +<_,_> {l} {U} {V} u v = λ x → x u v π1 : {l : Level} {U V : Set l} → (U × V) → U π1 {l} {U} {V} t = t {U} (λ(x : U) → λ(y : V) → x) @@ -44,8 +46,8 @@ hoge : {l : Level} {U V : Set l} → U → V → (U × V) hoge u v = < u , v > --- lemma08 : {l : Level} {U V : Set l } → {u : U } → (t : U × V) → < π1 t , π2 t > ≡ t --- lemma08 t = refl +--lemma08 : {l : Level} {X U V : Set l } → {x : X } → {u : U } → (t : U × V) → < π1 t , π2 t > x ≡ t x +--lemma08 t = refl -- Emp definision is still wrong... @@ -62,8 +64,8 @@ Emp : {l : Level } → Set (suc l) Emp {l} = {X : Set l} → X --- ε : {l : Level} {U : Set l} → Emp {l} → U --- ε {l} {U} t = t U +ε : {l : Level} {U : Set l} → Emp {l} → U +ε {l} {U} t = t {U} -- lemma103 : {l : Level} {U V : Set l} → (u : U) → (t : Emp {l} ) → (ε {l} {U → V} t) u ≡ ε {l} {V} t -- lemma103 u t = refl @@ -88,10 +90,10 @@ _+_ {l} U V = {X : Set l} → ( U → X ) → (V → X) → X ι1 : {l : Level } {U V : Set l} → U → U + V -ι1 {l} {U} {V} u = λ{X} → λ(x : U → X) → λ(y : V → X ) → x u +ι1 {l} {U} {V} u = λ x y → x u -- λ{X} → λ(x : U → X) → λ(y : V → X ) → x u ι2 : {l : Level } {U V : Set l} → V → U + V -ι2 {l} {U} {V} v = λ{X} → λ(x : U → X) → λ(y : V → X ) → y v +ι2 {l} {U} {V} v = λ x y → y v --λ{X} → λ(x : U → X) → λ(y : V → X ) → y v δ : {l : Level} { U V R S : Set l } → (R → U) → (S → U) → ( R + S ) → U δ {l} {U} {V} {R} {S} u v t = t {U} (λ(x : R) → u x) ( λ(y : S) → v y) @@ -107,7 +109,7 @@ _××_ {l} U V = {X : Set l} → (U → V → X) → X <<_,_>> : {l : Level} {U : Set (suc l) } {V : Set l} → U → V → (U ×× V) -<<_,_>> {l} {U} {V} u v = λ{X} → λ(x : U → V → X) → x u v +<<_,_>> {l} {U} {V} u v = λ x → x u v -- λ{X} → λ(x : U → V → X) → x u v Int : {l : Level } ( X : Set l ) → Set l @@ -143,6 +145,9 @@ ItInt : {l : Level} {X : Set l} → Int X → (X → Int X ) → ( Int X → Int X ) → Int X → Int X ItInt {l} {X} u g f t = λ z s → t (u z s) ( λ (w : X) → (f (g w)) z s ) +copy_int : {l l' : Level } { X X' : Set l } → Int (X → (X → X) → X) → Int X +copy_int {_} {_} {X} {X'} x = It Zero S x + R : {l : Level} { U X : Set l} → U → ( U → Int X → U ) → Int _ → U R {l} {U} {X} u v t = π1 ( It {suc l} {U × Int X} (< u , Zero >) (λ (x : U × Int X) → < v (π1 x) (π2 x) , S (π2 x) > ) t ) @@ -159,6 +164,20 @@ lemma22 : {l : Level} {X : Set l} ( x y : Int X ) → add x y ≡ add'' x y lemma22 x y = refl +lemma21 : {l : Level} {X : Set l} ( x y : Int X ) → add x Zero ≡ x +lemma21 x y = refl + +postulate extensionality : {l : Level } → Relation.Binary.PropositionalEquality.Extensionality l l + +--lemma23 : {l : Level} {X : Set l} ( x y : Int X ) → add x (S y) ≡ S ( add x y ) +--lemma23 x y = extensionality ( λ z → {!!} ) +-- where +-- lemma24 : {!!} +-- lemma24 = {!!} + +-- lemma23 : {l : Level} {X : Set l} ( x y : Int X ) → add x y ≡ add y x +-- lemma23 x y = {!!} + -- bad adder which modifies input type mul' : {l : Level } {X : Set l} → Int X → Int (Int X) → Int X mul' {l} {X} x y = It Zero (add x) y @@ -183,7 +202,7 @@ -- lemma14 : {l : Level} {X : Set l} → (x y : Int X) → mul x y ≡ mul y x --- lemma14 x y = It {!!} {!!} {!!} +-- lemma14 x y = {!!} -- It {!!} {!!} {!!} lemma15 : {l : Level} {X : Set l} (x y : Int X) → mul {l} {X} n2 n3 ≡ mul {l} {X} n3 n2 lemma15 x y = refl