@@ -37,22 +37,22 @@ with isH H ↪ true;
3737
3838// Discriminate constructors
3939
40- symbol I ≠H [x ] : π (I x ≠ H ) ≔
40+ opaque symbol I ≠H [x ] : π (I x ≠ H ) ≔
4141begin
4242 assume x h ; refine ind_eq h (λ x , istrue (isH x )) ⊤ᵢ;
4343end ;
4444
45- symbol O ≠H [x ] : π (O x ≠ H ) ≔
45+ opaque symbol O ≠H [x ] : π (O x ≠ H ) ≔
4646begin
4747 assume x h ; refine ind_eq h (λ x , istrue (isH x )) ⊤ᵢ;
4848end ;
4949
50- symbol I ≠O [x y ] : π (I x ≠ O y ) ≔
50+ opaque symbol I ≠O [x y ] : π (I x ≠ O y ) ≔
5151begin
5252 assume x y h ; refine ind_eq h (λ x , istrue (isO x )) ⊤ᵢ;
5353end ;
5454
55- opaque symbol caseH x : π(x = H ∨ x ≠ H ) ≔
55+ opaque opaque symbol caseH x : π(x = H ∨ x ≠ H ) ≔
5656begin
5757 induction
5858 { assume x h ; apply ∨ᵢ₂; refine I ≠H }
@@ -68,7 +68,7 @@ rule projO (O $x) ↪ $x
6868with projO (I $x ) ↪ I $x
6969with projO H ↪ H ;
7070
71- opaque symbol O_inj p q : π(O p = O q ) → π(p = q ) ≔
71+ opaque opaque symbol O_inj p q : π(O p = O q ) → π(p = q ) ≔
7272begin
7373 assume p q h ; apply feq projO h
7474end ;
@@ -79,7 +79,7 @@ rule projI (I $x) ↪ $x
7979with projI (O $x ) ↪ O $x
8080with projI H ↪ H ;
8181
82- opaque symbol I_inj p q : π(I p = I q ) → π(p = q ) ≔
82+ opaque opaque symbol I_inj p q : π(I p = I q ) → π(p = q ) ≔
8383begin
8484 assume p q h ; apply feq projI h
8585end ;
@@ -102,15 +102,15 @@ with val (I $x) ↪ val (O $x) +1;
102102
103103assert ⊢ val (O (I H )) ≡ 6 ;
104104
105- opaque symbol valS x : π(val (succ x ) = val x +1 ) ≔
105+ opaque opaque symbol valS x : π(val (succ x ) = val x +1 ) ≔
106106begin
107107 induction
108108 { assume x h ; simplify ; rewrite h ; reflexivity }
109109 { assume x h ; reflexivity }
110110 { reflexivity }
111111end ;
112112
113- opaque symbol val_surj [n ] : π(n ≠ 0 ⇒ `∃ x , val x = n ) ≔
113+ opaque opaque symbol val_surj [n ] : π(n ≠ 0 ⇒ `∃ x , val x = n ) ≔
114114begin
115115 induction
116116 { assume h ; apply ⊥ₑ; apply h ; reflexivity }
@@ -121,7 +121,7 @@ begin
121121 }
122122end ;
123123
124- opaque symbol val ≠0 x : π(val x ≠ 0 ) ≔
124+ opaque opaque symbol val ≠0 x : π(val x ≠ 0 ) ≔
125125begin
126126 induction
127127 { assume x h ; refine s ≠0 }
@@ -131,12 +131,12 @@ begin
131131 { refine s ≠0 }
132132end ;
133133
134- opaque symbol 2 *val ≠0 x : π(val x + val x ≠ 0 ) ≔
134+ opaque opaque symbol 2 *val ≠0 x : π(val x + val x ≠ 0 ) ≔
135135begin
136136 assume x h ; apply ⊥ₑ; apply val ≠0 x ; apply 2 *=0 ; apply h
137137end ;
138138
139- opaque symbol val_inj [x y ] : π(val x = val y ) → π(x = y ) ≔
139+ opaque opaque symbol val_inj [x y ] : π(val x = val y ) → π(x = y ) ≔
140140begin
141141 induction
142142 { assume x h ; induction
163163
164164// ℕ-like Induction Principle
165165
166- symbol ind_ ℙeano p : π (p H ) → (Π x , π (p x ) → π (p (succ x ))) → Π x , π (p x ) ≔
166+ opaque symbol ind_ ℙeano p : π (p H ) → (Π x , π (p x ) → π (p (succ x ))) → Π x , π (p x ) ≔
167167begin
168168 assume p pH psucc ;
169169 have i : π(`∀ n , `∀ x , val x = n ⇒ p x ) {
@@ -216,7 +216,7 @@ assert ⊢ add (O (I (O (I (O (I (O (I H))))))))
216216
217217// Interaction of succ and add
218218
219- symbol succ_add x y : π (succ (add x y ) = add_carry x y ) ≔
219+ opaque symbol succ_add x y : π (succ (add x y ) = add_carry x y ) ≔
220220begin
221221 induction
222222 // case I
@@ -235,7 +235,7 @@ begin
235235 { induction { reflexivity } { reflexivity } { reflexivity } }
236236end ;
237237
238- symbol add_succ x y : π (add (succ x ) y = succ (add x y )) ≔
238+ opaque symbol add_succ x y : π (add (succ x ) y = succ (add x y )) ≔
239239begin
240240 induction
241241 // case I
@@ -254,7 +254,7 @@ begin
254254 { induction { reflexivity } { reflexivity } { reflexivity } }
255255end ;
256256
257- symbol add_succ_right x y : π (add x (succ y ) = succ (add x y )) ≔
257+ opaque symbol add_succ_right x y : π (add x (succ y ) = succ (add x y )) ≔
258258begin
259259 refine ind_ ℙeano (λ x , `∀ y , add x (succ y ) = succ (add x y )) _ _
260260 // case H
266266
267267// Associativity of the addition
268268
269- symbol add_assoc x y z : π (add (add x y ) z = add x (add y z )) ≔
269+ opaque symbol add_assoc x y z : π (add (add x y ) z = add x (add y z )) ≔
270270begin
271271 refine ind_ ℙeano (λ x , `∀ y , `∀ z , add (add x y ) z = add x (add y z )) _ _
272272 // case H
279279
280280// Commutativity of the addition
281281
282- symbol add_com x y : π (add x y = add y x ) ≔
282+ opaque symbol add_com x y : π (add x y = add y x ) ≔
283283begin
284284 refine ind_ ℙeano (λ x , `∀ y , add x y = add y x ) _ _
285285 // case H
@@ -297,15 +297,15 @@ rule pos_pred_double (I $x) ↪ I (O $x)
297297with pos_pred_double (O $x ) ↪ I (pos_pred_double $x )
298298with pos_pred_double H ↪ H ;
299299
300- symbol pos_pred_double_succ x : π (pos_pred_double (succ x ) = I x ) ≔
300+ opaque symbol pos_pred_double_succ x : π (pos_pred_double (succ x ) = I x ) ≔
301301begin
302302 induction
303303 { assume x xrec ; simplify ; rewrite xrec ; reflexivity }
304304 { reflexivity }
305305 { reflexivity }
306306end ;
307307
308- symbol succ_pos_pred_double x : π (succ (pos_pred_double x ) = O x ) ≔
308+ opaque symbol succ_pos_pred_double x : π (succ (pos_pred_double x ) = O x ) ≔
309309begin
310310 induction
311311 { reflexivity }
@@ -331,7 +331,7 @@ symbol compare x y ≔ compare_acc x Eq y;
331331
332332// Commutative property of compare
333333
334- symbol compare_acc_com x y c :
334+ opaque symbol compare_acc_com x y c :
335335 π (compare_acc y c x = opp (compare_acc x (opp c ) y )) ≔
336336begin
337337 induction
@@ -354,14 +354,14 @@ begin
354354 { assume c ; simplify ; rewrite opp_idem ; reflexivity } }
355355end ;
356356
357- symbol compare_com x y : π (compare y x = opp (compare x y )) ≔
357+ opaque symbol compare_com x y : π (compare y x = opp (compare x y )) ≔
358358begin
359359 assume x y ; refine compare_acc_com x y Eq ;
360360end ;
361361
362362// Compare decides the equality
363363
364- symbol compare_acc_nEq x y c : π (c ≠ Eq ⇒ compare_acc x c y ≠ Eq ) ≔
364+ opaque symbol compare_acc_nEq x y c : π (c ≠ Eq ⇒ compare_acc x c y ≠ Eq ) ≔
365365begin
366366 induction
367367 // case I
@@ -383,7 +383,7 @@ begin
383383 { assume c Hc ; refine Hc } }
384384end ;
385385
386- symbol compare_decides x y : π (compare x y = Eq ⇒ x = y ) ≔
386+ opaque symbol compare_decides x y : π (compare x y = Eq ⇒ x = y ) ≔
387387begin
388388 induction
389389 // case I
407407
408408// Compare with Gt or Lt
409409
410- symbol compare_Lt x y :
410+ opaque symbol compare_Lt x y :
411411 π (compare_acc x Lt y = case_Comp (compare x y ) Lt Lt Gt ) ≔
412412begin
413413 induction
@@ -438,7 +438,7 @@ begin
438438 { induction { reflexivity } { reflexivity } { reflexivity } }
439439end ;
440440
441- symbol compare_Gt x y :
441+ opaque symbol compare_Gt x y :
442442 π (compare_acc x Gt y = case_Comp (compare x y ) Gt Lt Gt ) ≔
443443begin
444444 induction
@@ -470,27 +470,27 @@ end;
470470
471471// Compatibility of compare with the addition
472472
473- symbol compare_H_Lt y : π (compare_acc H Lt y = Lt ) ≔
473+ opaque symbol compare_H_Lt y : π (compare_acc H Lt y = Lt ) ≔
474474begin
475475 induction { reflexivity } { reflexivity } { reflexivity }
476476end ;
477477
478- symbol compare_Gt_H x : π (compare_acc x Gt H = Gt ) ≔
478+ opaque symbol compare_Gt_H x : π (compare_acc x Gt H = Gt ) ≔
479479begin
480480 induction { reflexivity } { reflexivity } { reflexivity }
481481end ;
482482
483- symbol compare_H_succ y c : π (compare_acc H c (succ y ) = Lt ) ≔
483+ opaque symbol compare_H_succ y c : π (compare_acc H c (succ y ) = Lt ) ≔
484484begin
485485 induction { reflexivity } { reflexivity } { reflexivity }
486486end ;
487487
488- symbol compare_succ_H x c : π (compare_acc (succ x ) c H = Gt ) ≔
488+ opaque symbol compare_succ_H x c : π (compare_acc (succ x ) c H = Gt ) ≔
489489begin
490490 induction { reflexivity } { reflexivity } { reflexivity }
491491end ;
492492
493- symbol compare_succ_Lt x y :
493+ opaque symbol compare_succ_Lt x y :
494494 π (compare_acc (succ x ) Lt y = compare_acc x Gt y ) ≔
495495begin
496496 induction
@@ -510,15 +510,15 @@ begin
510510 { reflexivity } }
511511end ;
512512
513- symbol compare_Gt_succ x y :
513+ opaque symbol compare_Gt_succ x y :
514514 π (compare_acc x Gt (succ y ) = compare_acc x Lt y ) ≔
515515begin
516516 assume x y ;
517517 rewrite compare_acc_com ; rewrite .[u in _ = u ] compare_acc_com ;
518518 simplify ; rewrite compare_succ_Lt ; reflexivity ;
519519end ;
520520
521- symbol compare_succ_succ x y c :
521+ opaque symbol compare_succ_succ x y c :
522522 π (compare_acc (succ x ) c (succ y ) = compare_acc x c y ) ≔
523523begin
524524 induction
@@ -541,7 +541,7 @@ begin
541541 { reflexivity } }
542542end ;
543543
544- symbol compare_compat_add a x y :
544+ opaque symbol compare_compat_add a x y :
545545 π (compare (add x a ) (add y a ) = compare x y ) ≔
546546begin
547547 refine ind_ ℙeano (λ a , `∀ x , `∀ y , compare (add x a ) (add y a ) = compare x y ) _ _
0 commit comments