File: bug_17466_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 (40 lines) | stat: -rw-r--r-- 767 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
34
35
36
37
38
39
40

Require Import Coq.Setoids.Setoid.

Set Implicit Arguments.

Record PartialOrder : Type :=
{ po_car :> Type
; le : po_car -> po_car -> Prop
; monotone : (po_car -> po_car) -> Prop
}.
Notation "x <= y" := (le _ x y).

Section PartialOrder.

Variable X : PartialOrder.

Lemma monotone_def : forall f, monotone X f <-> (forall x y, x <= y -> (f x) <= (f y)).
Admitted.

End PartialOrder.
Set Firstorder Depth 5.

Record SemiLattice : Type :=
{ po :> PartialOrder
; meet : po -> po -> po

}.

Arguments meet [s].

Axiom X : SemiLattice.

Lemma meet_monotone_l : forall a : X, monotone X (fun x => meet x a).
Admitted.

Lemma meet_le_compat : forall w x y z : X, w<=y -> meet w x <= meet y x.
Proof.
 intros.
 solve [firstorder using meet_monotone_l, monotone_def].
Qed.