304304symbol size [a ] : 𝕃 a → ℕ;
305305
306306rule size □ ↪ 0
307- with size (_ ⸬ $l ) ↪ s ( size $l ) ;
307+ with size (_ ⸬ $l ) ↪ size $l + 1 ;
308308
309309opaque symbol size0nil [a ] (l :𝕃 a ) : π (size l = 0 ) → π (l = □) ≔
310310begin
@@ -352,27 +352,27 @@ end;
352352symbol nseq [a ] : ℕ → τ a → 𝕃 a ;
353353
354354rule nseq 0 _ ↪ □
355- with nseq (s $ n ) $x ↪ $x ⸬ (nseq $n $x );
355+ with nseq ($ n + 1 ) $x ↪ $x ⸬ (nseq $n $x );
356356
357357// ncons
358358
359359symbol ncons [a ] : ℕ → τ a → 𝕃 a → 𝕃 a ;
360360
361361rule ncons 0 _ $l ↪ $l
362- with ncons (s $ n ) $x $l ↪ $x ⸬ ncons $n $x $l ;
362+ with ncons ($ n + 1 ) $x $l ↪ $x ⸬ ncons $n $x $l ;
363363
364364opaque symbol size_ncons [a ] n (x :τ a ) l : π (size (ncons n x l ) = n + size l ) ≔
365365begin
366366 assume a ; induction
367367 { reflexivity ; }
368- { assume n h x l ; simplify ; apply feq s (h x l ); }
368+ { assume n h x l ; simplify ; apply feq (+ 1 ) (h x l ); }
369369end ;
370370
371371opaque symbol size_nseq [a ] n (x :τ a ) : π (size (nseq n x ) = n ) ≔
372372begin
373373 assume a ; induction
374374 { reflexivity ; }
375- { assume n h x ; simplify ; apply feq s (h x ); }
375+ { assume n h x ; simplify ; apply feq (+ 1 ) (h x ); }
376376end ;
377377
378378opaque symbol cat_nseq [a ] n (x :τ a ) l : π (nseq n x ++ l = ncons n x l ) ≔
@@ -503,12 +503,12 @@ end;
503503symbol Seqn : ℕ → Set → TYPE ;
504504
505505rule Seqn 0 $a ↪ 𝕃 $a
506- with Seqn (s $ n ) $a ↪ τ $a → Seqn $n $a ;
506+ with Seqn ($ n + 1 ) $a ↪ τ $a → Seqn $n $a ;
507507
508508symbol seqn ' [a ] n : 𝕃 a → Seqn n a ;
509509
510510rule seqn ' 0 $l ↪ rev $l
511- with seqn ' (s $ n ) $l $x ↪ seqn ' $n ($x ⸬ $l );
511+ with seqn ' ($ n + 1 ) $l $x ↪ seqn ' $n ($x ⸬ $l );
512512
513513symbol seqn [a ] n ≔ @seqn ' a n □;
514514
@@ -539,7 +539,7 @@ symbol nth [a] : τ a → 𝕃 a → ℕ → τ a;
539539
540540rule nth $x □ _ ↪ $x
541541with nth _ ($e ⸬ _) 0 ↪ $e
542- with nth $x (_ ⸬ $l ) (s $ n ) ↪ nth $x $l $n ;
542+ with nth $x (_ ⸬ $l ) ($ n + 1 ) ↪ nth $x $l $n ;
543543
544544assert ⊢ nth 4 (3 ⸬ 2 ⸬ 1 ⸬ □) 0 ≡ 3 ;
545545assert ⊢ nth 4 (3 ⸬ 2 ⸬ 1 ⸬ □) 2 ≡ 1 ;
@@ -552,8 +552,8 @@ symbol set_nth [a] : τ a → 𝕃 a → ℕ → τ a → 𝕃 a;
552552
553553rule set_nth _ □ 0 $y ↪ $y ⸬ □
554554with set_nth _ (_ ⸬ $l ) 0 $y ↪ $y ⸬ $l
555- with set_nth $x □ (s $ i ) $y ↪ $x ⸬ set_nth $x □ $i $y
556- with set_nth $x ($e ⸬ $l ) (s $ i ) $y ↪ $e ⸬ set_nth $x $l $i $y ;
555+ with set_nth $x □ ($ i + 1 ) $y ↪ $x ⸬ set_nth $x □ $i $y
556+ with set_nth $x ($e ⸬ $l ) ($ i + 1 ) $y ↪ $e ⸬ set_nth $x $l $i $y ;
557557
558558assert ⊢ set_nth 42 (3 ⸬ 2 ⸬ 1 ⸬ □) 1 6 ≡ 3 ⸬ 6 ⸬ 1 ⸬ □;
559559assert ⊢ set_nth 42 (3 ⸬ 2 ⸬ 1 ⸬ □) 2 6 ≡ 3 ⸬ 2 ⸬ 6 ⸬ □;
@@ -564,9 +564,9 @@ assert ⊢ set_nth 42 (3 ⸬ 2 ⸬ 1 ⸬ □) 5 6 ≡ 3 ⸬ 2 ⸬ 1 ⸬ 42 ⸬ 4
564564symbol incr_nth : 𝕃 nat → τ nat → 𝕃 nat ;
565565
566566rule incr_nth □ 0 ↪ 1 ⸬ □
567- with incr_nth □ (s $ i ) ↪ 0 ⸬ incr_nth □ $i
568- with incr_nth ($n ⸬ $l ) 0 ↪ s $ n ⸬ $l
569- with incr_nth ($n ⸬ $l ) (s $ i ) ↪ $n ⸬ incr_nth $l $i ;
567+ with incr_nth □ ($ i + 1 ) ↪ 0 ⸬ incr_nth □ $i
568+ with incr_nth ($n ⸬ $l ) 0 ↪ $ n + 1 ⸬ $l
569+ with incr_nth ($n ⸬ $l ) ($ i + 1 ) ↪ $n ⸬ incr_nth $l $i ;
570570
571571assert ⊢ incr_nth (3 ⸬ 2 ⸬ 1 ⸬ □) 1 ≡ 3 ⸬ 3 ⸬ 1 ⸬ □;
572572assert ⊢ incr_nth (3 ⸬ 2 ⸬ 1 ⸬ □) 2 ≡ 3 ⸬ 2 ⸬ 2 ⸬ □;
@@ -630,7 +630,7 @@ begin
630630 { reflexivity ; }
631631 { assume ea la h ; induction
632632 { assume i ; apply ⊥ₑ i ; }
633- { assume eb lb i j ; apply feq s (h lb j ); }
633+ { assume eb lb i j ; apply feq (+ 1 ) (h lb j ); }
634634 }
635635end ;
636636
@@ -641,7 +641,7 @@ begin
641641 { assume lb h ; symmetry ; apply ≤0 (size lb ) h ; }
642642 { assume ea la h ; induction
643643 { reflexivity ; }
644- { assume eb lb i j ; apply feq s (h lb j ); }
644+ { assume eb lb i j ; apply feq (+ 1 ) (h lb j ); }
645645 }
646646end ;
647647
@@ -652,7 +652,7 @@ begin
652652 { reflexivity }
653653 { assume ea la h ; induction
654654 { reflexivity ; }
655- { assume eb lb i ; simplify ; apply feq s (h lb ); }
655+ { assume eb lb i ; simplify ; apply feq (+ 1 ) (h lb ); }
656656 }
657657end ;
658658
@@ -671,7 +671,7 @@ begin
671671 { assume ea la h ; induction
672672 { assume i ; apply ⊥ₑ (s ≠0 i ); }
673673 { assume eb lb i j ;
674- have t :π (size la = size lb ) { apply s_inj j ; };
674+ have t :π (size la = size lb ) { apply + 1 _ inj j ; };
675675 apply pH la lb ea eb t (h lb t ); }
676676 }
677677end ;
@@ -698,7 +698,7 @@ begin
698698 { assume i j ; apply ⊥ₑ (s ≠0 j ); }
699699 { assume eb lb k ; induction
700700 { assume m ; reflexivity ; }
701- { assume i m n ; apply h lb i _; apply s_inj n ; }
701+ { assume i m n ; apply h lb i _; apply + 1 _ inj n ; }
702702 }
703703 }
704704end ;
@@ -724,7 +724,7 @@ symbol drop [a] : ℕ → 𝕃 a → 𝕃 a;
724724
725725rule drop 0 $l ↪ $l
726726with drop _ □ ↪ □
727- with drop (s $ n ) (_ ⸬ $l ) ↪ drop $n $l ;
727+ with drop ($ n + 1 ) (_ ⸬ $l ) ↪ drop $n $l ;
728728
729729assert ⊢ drop 3 (7 ⸬ 2 ⸬ 3 ⸬ 1 ⸬ 41 ⸬ □) ≡ 1 ⸬ 41 ⸬ □;
730730assert ⊢ drop 10 (7 ⸬ 2 ⸬ 3 ⸬ 1 ⸬ 41 ⸬ □) ≡ □;
758758
759759//rule drop (size $l ) $l ↪ □;
760760
761- opaque symbol drop_cons [a ] (e :τ a ) l n : π (drop (s n ) (e ⸬ l ) = drop n l ) ≔
761+ opaque symbol drop_cons [a ] (e :τ a ) l n : π (drop (n + 1 ) (e ⸬ l ) = drop n l ) ≔
762762begin
763763 assume a e l n ; reflexivity ;
764764end ;
@@ -773,16 +773,16 @@ begin
773773 }
774774end ;
775775
776- opaque symbol size_cons [a ] (e :τ a ) n l : π (size l = n ⇔ size (e ⸬ l ) = s n ) ≔
776+ opaque symbol size_cons [a ] (e :τ a ) n l : π (size l = n ⇔ size (e ⸬ l ) = n + 1 ) ≔
777777begin
778778 assume a e n l ; apply ∧ᵢ {
779779 generalize n ; induction
780780 { assume l h ; simplify ; rewrite h ; reflexivity ; }
781- { assume n h l i ; simplify ; apply feq s i ;}
781+ { assume n h l i ; simplify ; apply feq (+ 1 ) i ;}
782782 } {
783783 generalize n ; induction
784- { assume l i ; apply s_inj i ;}
785- { assume n h l i ; apply s_inj i ; }
784+ { assume l i ; apply + 1 _ inj i ;}
785+ { assume n h l i ; apply + 1 _ inj i ; }
786786 };
787787end ;
788788
@@ -794,7 +794,7 @@ begin
794794 have t :π (l1 = □) { apply size0nil l1 h }; rewrite t ; reflexivity ; }
795795 { assume n h ; induction
796796 { assume l2 i ; apply ⊥ₑ; apply s ≠0 [n ]; symmetry ; apply i ; }
797- { assume e l1 i l2 j ; apply h l1 l2 ; apply s_inj j ; }
797+ { assume e l1 i l2 j ; apply h l1 l2 ; apply + 1 _ inj j ; }
798798 }
799799end ;
800800
@@ -815,7 +815,7 @@ symbol take [a] : ℕ → 𝕃 a → 𝕃 a;
815815
816816rule take 0 _ ↪ □
817817with take _ □ ↪ □
818- with take (s $ n ) ($x ⸬ $l ) ↪ $x ⸬ (take $n $l );
818+ with take ($ n + 1 ) ($x ⸬ $l ) ↪ $x ⸬ (take $n $l );
819819
820820assert ⊢ take 3 (7 ⸬ 2 ⸬ 3 ⸬ 1 ⸬ 41 ⸬ □) ≡ 7 ⸬ 2 ⸬ 3 ⸬ □;
821821assert ⊢ take 10 (7 ⸬ 2 ⸬ 3 ⸬ 1 ⸬ 41 ⸬ □) ≡ 7 ⸬ 2 ⸬ 3 ⸬ 1 ⸬ 41 ⸬ □;
@@ -826,7 +826,7 @@ begin
826826end ;
827827
828828opaque symbol take_cons [a ] n (x :τ a ) l :
829- π (take (s n ) (x ⸬ l ) = (x ⸬ take n l )) ≔
829+ π (take (n + 1 ) (x ⸬ l ) = (x ⸬ take n l )) ≔
830830begin
831831 assume a l ; reflexivity ;
832832end ;
@@ -866,7 +866,7 @@ begin
866866 { reflexivity ; }
867867 { assume n h ; induction
868868 { simplify ; assume i ; apply ⊥ₑ i ; }
869- { assume e l i ; simplify ; assume j ; apply feq s ; apply h l j ; }
869+ { assume e l i ; simplify ; assume j ; apply feq (+ 1 ) ; apply h l j ; }
870870 }
871871end ;
872872
@@ -882,7 +882,7 @@ begin
882882 { reflexivity ; }
883883 { assume n h ; induction
884884 { reflexivity ; }
885- { assume e l i ; simplify ; apply feq s (h l ); }
885+ { assume e l i ; simplify ; apply feq (+ 1 ) (h l ); }
886886 }
887887end ;
888888
@@ -941,7 +941,7 @@ begin
941941 { assume n i ; induction
942942 { reflexivity ; }
943943 { assume e l j ; simplify ; apply feq (λ l :𝕃 a , e ⸬ l );
944- rewrite left addnS ; apply h (s n ) l ; }
944+ rewrite left addnS ; apply h (n + 1 ) l ; }
945945 }
946946 }
947947end ;
@@ -1110,7 +1110,7 @@ end;
11101110symbol index [a ] : (τ a → τ a → 𝔹) → τ a → 𝕃 a → ℕ;
11111111
11121112rule index _ _ □ ↪ 0
1113- with index $beq $x ($y ⸬ $l ) ↪ if ($beq $x $y ) 0 (s ( index $beq $x $l ) );
1113+ with index $beq $x ($y ⸬ $l ) ↪ if ($beq $x $y ) 0 (index $beq $x $l + 1 );
11141114
11151115assert ⊢ index eqn 2 (42 ⸬ 2 ⸬ 51 ⸬ 3 ⸬ □) ≡ 1 ;
11161116assert ⊢ index eqn 26 (42 ⸬ 2 ⸬ 51 ⸬ 3 ⸬ □) ≡ 4 ;
@@ -1121,7 +1121,7 @@ begin
11211121 assume a beq x ; induction
11221122 { apply top ; }
11231123 { assume e l h ; simplify ;
1124- refine ind_ 𝔹 (λ b , istrue (if b 0 (s ( index beq x l )) ≤ s ( size l ) )) _ _ (beq x e ) {
1124+ refine ind_ 𝔹 (λ b , istrue (if b 0 (index beq x l + 1 ) ≤ size l + 1 )) _ _ (beq x e ) {
11251125 apply top ;
11261126 } {
11271127 simplify ; apply h ;
@@ -1160,7 +1160,7 @@ assert ⊢ all (λ x, eqn (x + 1) 3) (2 ⸬ 2 ⸬ 2 ⸬ 2 ⸬ □) ≡ true;
11601160symbol find [a ] : (τ a → 𝔹) → 𝕃 a → ℕ;
11611161
11621162rule find _ □ ↪ 0
1163- with find $p ($x ⸬ $l ) ↪ if ($p $x ) 0 (s ( find $p $l ) );
1163+ with find $p ($x ⸬ $l ) ↪ if ($p $x ) 0 (find $p $l + 1 );
11641164
11651165assert ⊢ find (λ x , eqn (x + 1 ) 3 ) (42 ⸬ 2 ⸬ 51 ⸬ 3 ⸬ □) ≡ 1 ;
11661166assert ⊢ find (λ x , eqn (x + 1 ) 3 ) (42 ⸬ 4 ⸬ 51 ⸬ 3 ⸬ □) ≡ 4 ;
@@ -1171,7 +1171,7 @@ begin
11711171 assume a p ; induction
11721172 { apply top ; }
11731173 { assume e l h ;
1174- refine ind_ 𝔹 (λ x :𝔹, istrue (if x 0 (s ( find p l )) ≤ s ( size l ) )) _ _ (p e ) {
1174+ refine ind_ 𝔹 (λ x :𝔹, istrue (if x 0 (find p l + 1 ) ≤ size l + 1 )) _ _ (p e ) {
11751175 apply top ;
11761176 } {
11771177 simplify ; apply h ;
@@ -1184,7 +1184,7 @@ end;
11841184symbol count [a ] : (τ a → 𝔹) → 𝕃 a → ℕ;
11851185
11861186rule count _ □ ↪ 0
1187- with count $p ($x ⸬ $l ) ↪ if ($p $x ) (s ( count $p $l ) ) (count $p $l );
1187+ with count $p ($x ⸬ $l ) ↪ if ($p $x ) (count $p $l + 1 ) (count $p $l );
11881188
11891189assert ⊢ count (λ x , eqn (x + 1 ) 3 ) (42 ⸬ 4 ⸬ 51 ⸬ 3 ⸬ □) ≡ 0 ;
11901190assert ⊢ count (λ x , eqn (x + 1 ) 3 ) (2 ⸬ 2 ⸬ 2 ⸬ 2 ⸬ □) ≡ 4 ;
@@ -1194,11 +1194,11 @@ begin
11941194 assume a p ; induction
11951195 { apply top ; }
11961196 { assume e l h ; simplify ;
1197- refine ind_ 𝔹 (λ x :𝔹, istrue (if x (s ( count p l )) (count p l ) ≤ s ( size l ) )) _ _ (p e ) {
1197+ refine ind_ 𝔹 (λ x :𝔹, istrue (if x (count p l + 1 ) (count p l ) ≤ size l + 1 )) _ _ (p e ) {
11981198 simplify ; apply h ;
11991199 } {
12001200 simplify ;
1201- refine @leq_trans (count p l ) (size l ) (s ( size l ) ) h (leqnSn (size l ));
1201+ refine @leq_trans (count p l ) (size l ) (size l + 1 ) h (leqnSn (size l ));
12021202 };
12031203 }
12041204end ;
@@ -1280,8 +1280,8 @@ rule infix_index _ □ _ ↪ 0
12801280with infix_index _ (_ ⸬ _) □ ↪ 0
12811281with infix_index $beq ($x ⸬ $l1 ) ($y ⸬ $l2 ) ↪
12821282 if ($beq $x $y )
1283- (if (is_prefix $beq $l1 $l2 ) 0 (s ( size $l2 ) ))
1284- (s ( infix_index $beq ($x ⸬ $l1 ) $l2 ) );
1283+ (if (is_prefix $beq $l1 $l2 ) 0 (size $l2 + 1 ))
1284+ (infix_index $beq ($x ⸬ $l1 ) $l2 + 1 );
12851285
12861286assert ⊢ infix_index eqn (51 ⸬ 3 ⸬ □) (42 ⸬ 4 ⸬ 51 ⸬ 3 ⸬ 4 ⸬ □) ≡ 2 ;
12871287assert ⊢ infix_index eqn (51 ⸬ 4 ⸬ □) (42 ⸬ 4 ⸬ 51 ⸬ 3 ⸬ 4 ⸬ □) ≡ 5 ;
@@ -1314,8 +1314,8 @@ begin
13141314 assume a p ; induction
13151315 { reflexivity ; }
13161316 { assume e l h ; simplify ;
1317- refine ind_ 𝔹 (λ x , size (if x (e ⸬ filter p l ) (filter p l )) = (if x (s ( count p l ) ) (count p l ))) _ _ (p e ) {
1318- simplify ; apply feq s h ;
1317+ refine ind_ 𝔹 (λ x , size (if x (e ⸬ filter p l ) (filter p l )) = (if x (count p l + 1 ) (count p l ))) _ _ (p e ) {
1318+ simplify ; apply feq (+ 1 ) h ;
13191319 } {
13201320 simplify ; apply h ;
13211321 };
@@ -1380,9 +1380,9 @@ begin
13801380 assume a beq ; induction
13811381 { apply top ; }
13821382 { assume e l h ; simplify ;
1383- refine ind_ 𝔹 (λ x , istrue (size (if x (undup beq l ) (e ⸬ undup beq l )) ≤ s ( size l ) )) _ _ (∈ beq e (undup beq l )) {
1383+ refine ind_ 𝔹 (λ x , istrue (size (if x (undup beq l ) (e ⸬ undup beq l )) ≤ size l + 1 )) _ _ (∈ beq e (undup beq l )) {
13841384 simplify ;
1385- refine @leq_trans (size (undup beq l )) (size l ) (s ( size l ) ) h (leqnSn (size l ));
1385+ refine @leq_trans (size (undup beq l )) (size l ) (size l + 1 ) h (leqnSn (size l ));
13861386 } {
13871387 simplify ; apply h ;
13881388 };
@@ -1440,7 +1440,7 @@ opaque symbol size_map [a b] (f:τ a → τ b) l : π (size (map f l) = size l)
14401440begin
14411441 assume a b f ; induction
14421442 { reflexivity ; }
1443- { assume e l h ; simplify ; apply feq s h ; }
1443+ { assume e l h ; simplify ; apply feq (+ 1 ) h ; }
14441444end ;
14451445
14461446opaque symbol behead_map [a b ] (f :τ a → τ b ) l :
0 commit comments