forked from coq-community/coq-art
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathleibniz.html
53 lines (36 loc) · 1.16 KB
/
leibniz.html
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
41
42
43
44
45
46
47
48
49
50
51
52
53
<html>
<title> An impredicative definition of equality </title>
<body>
<h1> An impredicative definition of equality </h1>
Consider the following impredicative definition of leibniz equality :
<pre>
Section leibniz.
Variable A : Set.
Set Implicit Arguments.
Definition leibniz (a b:A) : Prop := forall P:A -> Prop, P a -> P b.
</pre>
Prove the following theorems (load library <tt>Relations</tt> before)
<pre>
Theorem leibniz_sym : symmetric A leibniz.
Theorem leibniz_refl : reflexive A leibniz.
Theorem leibniz_trans : transitive A leibniz.
Theorem leibniz_equiv : equiv A leibniz.
Theorem leibniz_least :
forall R:relation A, reflexive A R -> inclusion A leibniz R.
Theorem leibniz_eq : forall a b:A, leibniz a b -> a = b.
Theorem eq_leibniz : forall a b:A, a = b -> leibniz a b.
Theorem leibniz_ind :
forall (x:A) (P:A -> Prop), P x -> forall y:A, leibniz x y -> P y.
</pre>
<h2> Solution </h2>
<ul>
<li> <a href="SRC/leibniz.v"> leibniz.v </a>
<li> <a href="SRC/leibniz_with_classes.v"> Alternate solution, using <tt>RelationClasses</tt> </a>
</ul>
<br>
See also <a href="leibniz_notes.html"> Some remarks </a>
<br><br>
<hr>
<hr>
</body>
</html>