Skip to content

Commit 4e72e32

Browse files
authored
replace s by postfix +1 (#9)
Following Deducteam/lambdapi#926 * CI: do not test lambdapi < 2.3.0 anymore * opam file: fix dependencies
1 parent 163f496 commit 4e72e32

File tree

6 files changed

+155
-154
lines changed

6 files changed

+155
-154
lines changed

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
strategy:
99
fail-fast: false
1010
matrix:
11-
lambdapi-version: [lambdapi.2.0.0, lambdapi.2.1.0, lambdapi.2.2.0, lambdapi.2.2.1, lambdapi]
11+
lambdapi-version: [lambdapi.2.3.0, lambdapi]
1212
runs-on: ubuntu-latest
1313
steps:
1414
- name: Check out library

List.lp

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ end;
304304
symbol size [a] : 𝕃 a → ℕ;
305305

306306
rule size □ ↪ 0
307-
with size (_ ⸬ $l) ↪ s (size $l);
307+
with size (_ ⸬ $l) ↪ size $l +1;
308308

309309
opaque symbol size0nil [a] (l:𝕃 a) : π (size l = 0) → π (l = □) ≔
310310
begin
@@ -352,27 +352,27 @@ end;
352352
symbol nseq [a] : ℕ → τ a → 𝕃 a;
353353

354354
rule 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

359359
symbol ncons [a] : ℕ → τ a → 𝕃 a → 𝕃 a;
360360

361361
rule ncons 0 _ $l ↪ $l
362-
with ncons (s $n) $x $l ↪ $xncons $n $x $l;
362+
with ncons ($n +1) $x $l ↪ $xncons $n $x $l;
363363

364364
opaque symbol size_ncons [a] n (xa) l : π (size (ncons n x l) = n + size l) ≔
365365
begin
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); }
369369
end;
370370

371371
opaque symbol size_nseq [a] n (xa) : π (size (nseq n x) = n) ≔
372372
begin
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); }
376376
end;
377377

378378
opaque symbol cat_nseq [a] n (xa) l : π (nseq n x ++ l = ncons n x l) ≔
@@ -503,12 +503,12 @@ end;
503503
symbol Seqn : ℕ → SetTYPE;
504504

505505
rule Seqn 0 $a ↪ 𝕃 $a
506-
with Seqn (s $n) $a ↪ τ $aSeqn $n $a;
506+
with Seqn ($n +1) $a ↪ τ $aSeqn $n $a;
507507

508508
symbol seqn' [a] n : 𝕃 aSeqn n a;
509509

510510
rule seqn' 0 $lrev $l
511-
with seqn' (s $n) $l $xseqn' $n ($x ⸬ $l);
511+
with seqn' ($n +1) $l $xseqn' $n ($x ⸬ $l);
512512

513513
symbol seqn [a] n@seqn' a n □;
514514

@@ -539,7 +539,7 @@ symbol nth [a] : τ a → 𝕃 a → ℕ → τ a;
539539

540540
rule nth $x □ _ ↪ $x
541541
with 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

544544
assertnth 4 (321 ⸬ □) 03;
545545
assertnth 4 (321 ⸬ □) 21;
@@ -552,8 +552,8 @@ symbol set_nth [a] : τ a → 𝕃 a → ℕ → τ a → 𝕃 a;
552552

553553
rule set_nth _ □ 0 $y ↪ $y ⸬ □
554554
with set_nth _ (_ ⸬ $l) 0 $y ↪ $y ⸬ $l
555-
with set_nth $x □ (s $i) $y ↪ $xset_nth $x □ $i $y
556-
with set_nth $x ($e ⸬ $l) (s $i) $y ↪ $eset_nth $x $l $i $y;
555+
with set_nth $x □ ($i +1) $y ↪ $xset_nth $x □ $i $y
556+
with set_nth $x ($e ⸬ $l) ($i +1) $y ↪ $eset_nth $x $l $i $y;
557557

558558
assertset_nth 42 (321 ⸬ □) 1 6361 ⸬ □;
559559
assertset_nth 42 (321 ⸬ □) 2 6326 ⸬ □;
@@ -564,9 +564,9 @@ assert ⊢ set_nth 42 (3 ⸬ 2 ⸬ 1 ⸬ □) 5 6 ≡ 3 ⸬ 2 ⸬ 1 ⸬ 42 ⸬ 4
564564
symbol incr_nth : 𝕃 nat → τ nat → 𝕃 nat;
565565

566566
rule incr_nth01 ⸬ □
567-
with incr_nth □ (s $i) ↪ 0incr_nth □ $i
568-
with incr_nth ($n ⸬ $l) 0s $n ⸬ $l
569-
with incr_nth ($n ⸬ $l) (s $i) ↪ $nincr_nth $l $i;
567+
with incr_nth □ ($i +1) ↪ 0incr_nth □ $i
568+
with incr_nth ($n ⸬ $l) 0$n +1 ⸬ $l
569+
with incr_nth ($n ⸬ $l) ($i +1) ↪ $nincr_nth $l $i;
570570

571571
assertincr_nth (321 ⸬ □) 1331 ⸬ □;
572572
assertincr_nth (321 ⸬ □) 2322 ⸬ □;
@@ -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
}
635635
end;
636636

@@ -641,7 +641,7 @@ begin
641641
{ assume lb h; symmetry; apply0 (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
}
646646
end;
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
}
657657
end;
658658

@@ -671,7 +671,7 @@ begin
671671
{ assume ea la h; induction
672672
{ assume i; apply ⊥ₑ (s0 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
}
677677
end;
@@ -698,7 +698,7 @@ begin
698698
{ assume i j; apply ⊥ₑ (s0 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
}
704704
end;
@@ -724,7 +724,7 @@ symbol drop [a] : ℕ → 𝕃 a → 𝕃 a;
724724

725725
rule drop 0 $l ↪ $l
726726
with drop _ □ ↪ □
727-
with drop (s $n) (_ ⸬ $l) ↪ drop $n $l;
727+
with drop ($n +1) (_ ⸬ $l) ↪ drop $n $l;
728728

729729
assertdrop 3 (723141 ⸬ □) ≡ 141 ⸬ □;
730730
assertdrop 10 (723141 ⸬ □) ≡ □;
@@ -758,7 +758,7 @@ end;
758758

759759
//rule drop (size $l) $l ↪ □;
760760

761-
opaque symbol drop_cons [a] (ea) l n : π (drop (s n) (el) = drop n l) ≔
761+
opaque symbol drop_cons [a] (ea) l n : π (drop (n +1) (el) = drop n l) ≔
762762
begin
763763
assume a e l n; reflexivity;
764764
end;
@@ -773,16 +773,16 @@ begin
773773
}
774774
end;
775775

776-
opaque symbol size_cons [a] (ea) n l : π (size l = nsize (el) = s n) ≔
776+
opaque symbol size_cons [a] (ea) n l : π (size l = nsize (el) = n +1) ≔
777777
begin
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
};
787787
end;
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 s0 [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
}
799799
end;
800800

@@ -815,7 +815,7 @@ symbol take [a] : ℕ → 𝕃 a → 𝕃 a;
815815

816816
rule take 0 _ ↪ □
817817
with take _ □ ↪ □
818-
with take (s $n) ($x ⸬ $l) ↪ $x ⸬ (take $n $l);
818+
with take ($n +1) ($x ⸬ $l) ↪ $x ⸬ (take $n $l);
819819

820820
asserttake 3 (723141 ⸬ □) ≡ 723 ⸬ □;
821821
asserttake 10 (723141 ⸬ □) ≡ 723141 ⸬ □;
@@ -826,7 +826,7 @@ begin
826826
end;
827827

828828
opaque symbol take_cons [a] n (xa) l :
829-
π (take (s n) (xl) = (xtake n l)) ≔
829+
π (take (n +1) (xl) = (xtake n l)) ≔
830830
begin
831831
assume a l; reflexivity;
832832
end;
@@ -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
}
871871
end;
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
}
887887
end;
888888

@@ -941,7 +941,7 @@ begin
941941
{ assume n i; induction
942942
{ reflexivity; }
943943
{ assume e l j; simplify; apply feql:𝕃 a, el);
944-
rewrite left addnS; apply h (s n) l; }
944+
rewrite left addnS; apply h (n +1) l; }
945945
}
946946
}
947947
end;
@@ -1110,7 +1110,7 @@ end;
11101110
symbol index [a] : (τ a → τ a → 𝔹) → τ a → 𝕃 a → ℕ;
11111111

11121112
rule 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

11151115
assertindex eqn 2 (422513 ⸬ □) ≡ 1;
11161116
assertindex eqn 26 (422513 ⸬ □) ≡ 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;
11601160
symbol find [a] : (τ a → 𝔹) → 𝕃 a → ℕ;
11611161

11621162
rule 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

11651165
assertfindx, eqn (x + 1) 3) (422513 ⸬ □) ≡ 1;
11661166
assertfindx, eqn (x + 1) 3) (424513 ⸬ □) ≡ 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;
11841184
symbol count [a] : (τ a → 𝔹) → 𝕃 a → ℕ;
11851185

11861186
rule 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

11891189
assertcountx, eqn (x + 1) 3) (424513 ⸬ □) ≡ 0;
11901190
assertcountx, eqn (x + 1) 3) (2222 ⸬ □) ≡ 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
}
12041204
end;
@@ -1280,8 +1280,8 @@ rule infix_index _ □ _ ↪ 0
12801280
with infix_index _ (_ ⸬ _) □ ↪ 0
12811281
with 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

12861286
assertinfix_index eqn (513 ⸬ □) (4245134 ⸬ □) ≡ 2;
12871287
assertinfix_index eqn (514 ⸬ □) (4245134 ⸬ □) ≡ 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 (efilter 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 (efilter 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) (eundup beq l)) ≤ s (size l))) _ _ (∈ beq e (undup beq l)) {
1383+
refine ind_𝔹 (λ x, istrue (size (if x (undup beq l) (eundup 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)
14401440
begin
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; }
14441444
end;
14451445

14461446
opaque symbol behead_map [a b] (fa → τ b) l :

Makefile

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
1-
SRC = $(wildcard *.lp)
2-
OBJ = $(SRC:%.lp=%.lpo)
1+
SRC := $(wildcard *.lp)
2+
OBJ := $(SRC:%.lp=%.lpo)
33

4-
default:
5-
lambdapi check $(SRC)
6-
7-
lpo: $(OBJ)
4+
default: $(OBJ)
85

96
$(OBJ)&: $(SRC)
107
lambdapi check -c $^
118

129
clean:
1310
rm -f $(OBJ)
1411

15-
install: lpo
12+
install: $(OBJ)
1613
lambdapi install lambdapi.pkg $(SRC) $(OBJ)
1714

1815
uninstall:

0 commit comments

Comments
 (0)