Skip to content

Commit

Permalink
details
Browse files Browse the repository at this point in the history
  • Loading branch information
thiagofelicissimo committed Apr 19, 2024
1 parent f672f2f commit 52f4442
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions examples/lambda-mu.bitts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
(* A variant of the λμ-caculus *)

(* A variant of the λμ-caculus *)

sort Ty ()
sort Tm (A : Ty)
Expand All @@ -14,14 +14,14 @@ sort Addr (A : Ty)
constructor ⊥ () (): Ty

constructor μ (A : Ty) (t{x : Addr(A)} : Tm(⊥)) : Tm(A)
constructor concat (A : Ty, B : Ty) (a : Addr(B), t : Tm(A)) : Addr(→(A, B))
constructor (A : Ty, B : Ty) (a : Addr(B), t : Tm(A)) : Addr(→(A, B))
destructor send (A : Ty) [a : Addr(A)] (t : Tm(A)) : Tm(⊥)

equation skipcheck
send(concat(a, u), t) --> send(a, ﹫(t, u))
send((a, u), t) --> send(a, ﹫(t, u))

equation skipcheck
﹫(μ(a. t{a}), u) --> μ(a. t{concat(a, u)})
﹫(μ(a. t{a}), u) --> μ(a. t{(a, u)})

let pierce (P : Ty, Q : Ty) : Tm(→(→(→(P, Q), P), P))
:= λ(f. μ(a. send(a, ﹫(f, λ(p. μ(_. send(a, p)))))))
Expand Down

0 comments on commit 52f4442

Please sign in to comment.