1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
16 include "bishop_set_rewrite.ma".
18 definition discrete_uniform_space_of_bishop_set:bishop_set → uniform_space.
19 intro C; apply (mk_uniform_space C);
21 alias symbol "pi2" = "pair pi2".
22 alias symbol "pi1" = "pair pi1".
23 alias symbol "and" = "logical and".
24 apply (∃_:unit.∀n:C square.(\fst n ≈ \snd n → P n) ∧ (P n → \fst n ≈ \snd n));
25 |2: intros 4 (U H x Hx); simplify in Hx;
26 cases H (_ H1); cases (H1 x); apply H2; apply Hx;
27 |3: intros; cases H (_ PU); cases H1 (_ PV);
28 exists[apply (λx.U x ∧ V x)] split;
29 [1: exists[apply something] intro; cases (PU n); cases (PV n);
30 split; intros; try split;[apply H2;|apply H4] try assumption;
31 apply H3; cases H6; assumption;
32 |2: simplify; intros; assumption;]
33 |4: intros; cases H (_ PU); exists [apply U] split;
34 [1: exists [apply something] intro n; cases (PU n);
35 split; intros; try split;[apply H1;|apply H2] assumption;
36 |2: intros 2 (x Hx); cases Hx; cases H1; clear H1;
37 cases (PU 〈(\fst x),x1〉); lapply (H4 H2) as H5; simplify in H5;
38 cases (PU 〈x1,(\snd x)〉); lapply (H7 H3) as H8; simplify in H8;
39 generalize in match H5; generalize in match H8;
40 generalize in match (PU x); clear H6 H7 H1 H4 H2 H3 H5 H8;
41 cases x; simplify; intros; cases H1; clear H1; apply H4;
42 apply (eq_trans ???? H3 H2);]
43 |5: intros; cases H (_ H1); split; cases x;
44 [2: cases (H1 〈b,b1〉); intro; apply H2; cases (H1 〈b1,b〉);
45 lapply (H6 H4) as H7; apply eq_sym; apply H7;
46 |1: cases (H1 〈b1,b〉); intro; apply H2; cases (H1 〈b,b1〉);
47 lapply (H6 H4) as H7; apply eq_sym; apply H7;]]