mirror of
https://github.com/achlipala/frap.git
synced 2024-12-01 00:26:18 +00:00
DependentInductiveTypes
This commit is contained in:
parent
e204041ff8
commit
d8e580b331
4 changed files with 1504 additions and 1 deletions
1495
DependentInductiveTypes.v
Normal file
1495
DependentInductiveTypes.v
Normal file
File diff suppressed because it is too large
Load diff
|
@ -387,3 +387,10 @@ Proof.
|
||||||
simplify.
|
simplify.
|
||||||
apply includes_intro; auto.
|
apply includes_intro; auto.
|
||||||
Qed.
|
Qed.
|
||||||
|
|
||||||
|
Ltac dep_cases E :=
|
||||||
|
let x := fresh "x" in
|
||||||
|
remember E as x; simpl in x; dependent destruction x;
|
||||||
|
try match goal with
|
||||||
|
| [ H : _ = E |- _ ] => try rewrite <- H in *; clear H
|
||||||
|
end.
|
||||||
|
|
|
@ -31,4 +31,4 @@ The main narrative, also present in the book PDF, presents standard program-proo
|
||||||
|
|
||||||
There are also two supplementary files that are independent of the main narrative, for introducing programming with dependent types, a distinctive Coq feature that we neither use nor recommend for the problem sets, but which many students find interesting (and useful in other contexts).
|
There are also two supplementary files that are independent of the main narrative, for introducing programming with dependent types, a distinctive Coq feature that we neither use nor recommend for the problem sets, but which many students find interesting (and useful in other contexts).
|
||||||
* `SubsetTypes.v`: a first introduction to dependent types by attaching predicates to normal types (used after `CompilerCorrectness.v` in the last course offering)
|
* `SubsetTypes.v`: a first introduction to dependent types by attaching predicates to normal types (used after `CompilerCorrectness.v` in the last course offering)
|
||||||
* One more coming soon
|
* `DependentInductiveTypes.v`: building type dependency into datatype definitions (used after `LambdaCalculusAndTypeSoundness.v` in the last course offering)
|
||||||
|
|
|
@ -36,6 +36,7 @@ SubsetTypes.v
|
||||||
SubsetTypes_template.v
|
SubsetTypes_template.v
|
||||||
LambdaCalculusAndTypeSoundness_template.v
|
LambdaCalculusAndTypeSoundness_template.v
|
||||||
LambdaCalculusAndTypeSoundness.v
|
LambdaCalculusAndTypeSoundness.v
|
||||||
|
DependentInductiveTypes.v
|
||||||
TypesAndMutation.v
|
TypesAndMutation.v
|
||||||
DeepAndShallowEmbeddings_template.v
|
DeepAndShallowEmbeddings_template.v
|
||||||
DeepAndShallowEmbeddings.v
|
DeepAndShallowEmbeddings.v
|
||||||
|
|
Loading…
Reference in a new issue