File: bug_17294_1.v

package info (click to toggle)
coq 8.20.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 44,116 kB
  • sloc: ml: 234,160; sh: 4,301; python: 3,270; ansic: 2,644; makefile: 882; lisp: 172; javascript: 63; xml: 24; sed: 2
file content (33 lines) | stat: -rw-r--r-- 652 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

Module Import Datatypes.

Set Implicit Arguments.
Set Primitive Projections.

Record prod (A : Type) := pair { fst : A }.

End Datatypes.

Axiom Or : Type -> Type.
Axiom to : forall T, T ->  (Or T).

Section ORecursion.
  Context {P Q : Type} .
  Definition O_rec (f : P -> Q) : (Or P) -> Q.
  Admitted.
  Definition O_rec_beta (f : P -> Q) (x : P) : O_rec f (to P x) = f x.
  Admitted.

End ORecursion.

Parameter (A : Type).

Definition O_prod_unit  : prod A -> prod (Or A).
  exact (fun (z : prod A) => pair (to A (fst z))).
Defined.

Lemma foo  (x : A)
  : O_rec O_prod_unit (to (prod A) (pair x)) = pair (to A x).
Proof.
  apply O_rec_beta.
Qed.