coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Christian Kjær Larsen <christianden AT gmail.com>
- To: coq-club AT inria.fr
- Subject: [Coq-Club] Problems with dependently typed function
- Date: Fri, 22 Mar 2019 09:17:44 +0100
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=christianden AT gmail.com; spf=Pass smtp.mailfrom=christianden AT gmail.com; spf=None smtp.helo=postmaster AT mail-ed1-f47.google.com
- Ironport-phdr: 9a23:4ZvH4RWYD8P5SxajmTLOKJIxy1fV8LGtZVwlr6E/grcLSJyIuqrYYxOHt8tkgFKBZ4jH8fUM07OQ7/m4HzNYqs/Y7DgrS99lb1c9k8IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUhrwOhBoKevrB4Xck9q41/yo+53Ufg5EmCexbal9IRmrsQndrMsbjZdtJqos1xfErWZDdvhLy29vOV+dhQv36N2q/J5k/SRQuvYh+NBFXK7nYak2TqFWASo/PWwt68LlqRfMTQ2U5nsBSWoWiQZHAxLE7B7hQJj8tDbxu/dn1ymbOc32Sq00WSin4qx2RhLklDsLOjgk+2zRl8d+jr9UoAi5qhJhw4DafYKbOvRwcazSYdwUSnFMXtpSWiFbHo+wc4UCAugHMO1Fr4f9vVwOrR6mCASyBOPv0D5IhmTq3a07yeshFxnJ0gkiH9UJqnTbtNP7O70IUeCu0qbIyyjIYvRK1jf98ojIcwshoe2NXb1qd8re1FcgFwXeg1WfrIzqJTKV1uAXv2eH6OpgUPuihmg6oA9yujii3tkghpXNi44PyV3J9T91zJgpKdC7UkJ2btypHINTuiyULYd6X8MvT3xytConxLALtoS3cSYXxJkh2hXRceaIc5KS7RLmTOuRISl3hHZieL+ngha960mgyunlWsaqzVlGszNJktfDu30PzRDT5c+HSvxy/kelxzmDzRzc6uZBIUwslKrbLYAuwqIom5YNrUjOGjX6lUb2gaOMaEko5uul5/7ob7jkvpOcMpV7igD6MqQggMy/BuE4PxASUGib4+S81abj/VH4QLpQiP05j7fWsJbBKMQUo662GQ5V0oI55xmjCDem1cwUnWMbI1JdZBKHk4/pNknSL/D/FPezmkijkDN2x//dJbDhGZXMLn3bkLj7Z7p96khcyBAyzd9F/Z5UBKsBc7rPXRr6s8WdBRskOSS1xfzmAZNzzNAwQ2WKV4SZKqLJrV6B4NUMIWeWU6scoi3wLbBx7P70jGQlmFYbcaSv9ZQSYXG8WP9hJhPKMjLXnt4dHDJS7UIFR+vwhQjaCG8BVzOJR6s5owoDJsejBIbHSJqqheXYjii+F5xSIGtBDwLVSCu6R8C/Q/4JLRmqDIp5iDVdDOquToYg0Velswqok+M6fNqRwTURsNfY7PYw5+DXkktvpzl9DsDY3m3UCm8owSUHQDg52K05qkt4mA+O
Hi,
I have some GADT for expressions, and I want to lift values into expressions like this
Inductive ty : Set :=
| Nat : ty
| Nat' : ty
| Bool : ty.
Definition tyDenote (t : ty) : Set :=
match t with
| Nat => nat
| Nat' => nat
| Bool => bool
end.
Inductive exp : ty -> Set :=
| NatLit : nat -> exp Nat
| Nat'Lit : nat -> exp Nat'
| BoolLit : bool -> exp Bool.
Definition liftVal t (x : tyDenote t) : exp t :=
match t in ty return exp t with
| Nat => NatLit x
| Nat' => Nat'Lit x
| Bool => BoolLit x
end.
But the last definition will not type check. Do any of you know how to write a function like this? One complication is probably that different object level types have the same denotation.
Cheers,
Christian
- [Coq-Club] Problems with dependently typed function, Christian Kjær Larsen, 03/22/2019
- Re: [Coq-Club] Problems with dependently typed function, Gaëtan Gilbert, 03/22/2019
- Re: [Coq-Club] Problems with dependently typed function, Beta Ziliani, 03/22/2019
- Re: [Coq-Club] Problems with dependently typed function, Jean-Francois Monin, 03/22/2019
- Re: [Coq-Club] Problems with dependently typed function, Stefan Monnier, 03/22/2019
- Re: [Coq-Club] Problems with dependently typed function, Jean-Francois Monin, 03/22/2019
- Re: [Coq-Club] Problems with dependently typed function, Beta Ziliani, 03/22/2019
- Re: [Coq-Club] Problems with dependently typed function, Sylvain Boulmé, 03/22/2019
- Re: [Coq-Club] Problems with dependently typed function, Gaëtan Gilbert, 03/22/2019
Archive powered by MHonArc 2.6.18.