forked from readablesystems/cs260r-17
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathl01.v
31 lines (20 loc) · 785 Bytes
/
l01.v
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
Module Lecture1.
Require Import Arith.
Require Import List.
Definition AnIntegerExists : nat.
(* First prove by construction. Start with
Definition AnIntegerExists : nat := _.
and fill in the underscore. *)
Lemma AnIntegerExistsB : nat.
(* Then prove using tactics. Start with
"Proof." and check out Coq's reports.
Tactics: `apply`, `intros`, `split`, `destruct`. *)
Definition Proj1 {A B:Prop} : A /\ B -> A.
Lemma Proj1B {A B:Prop} : A /\ B -> A.
(* Use `Locate`, `Check`, and `Print` to figure out
how <-> works. Start with `Locate "_ <-> _".` *)
Lemma ObjectivismB {A:Prop} : A <-> A.
Definition Objectivism {A:Prop} : A <-> A.
Lemma DistributeAnd {A B C:Prop} :
A /\ (B \/ C) -> (A /\ B) \/ (A /\ C).
End Lecture1.