Skip to content

Commit 2e5225c

Browse files
committed
feat: Port 20 numeric-only Dafny synthesis tasks (batch 5)
1 parent 57e8773 commit 2e5225c

19 files changed

+271
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-- Synthesis Task 135: Calculate nth hexagonal number
2+
3+
namespace NumpySpec.DafnyBenchmarks.SynthesisTask135
4+
5+
/-- Calculate the nth hexagonal number -/
6+
def nthHexagonalNumber (n : Nat) : Nat :=
7+
sorry
8+
9+
/-- Specification: The nth hexagonal number is n(2n-1) -/
10+
theorem nthHexagonalNumber_spec (n : Nat) :
11+
nthHexagonalNumber n = n * (2 * n - 1) :=
12+
sorry
13+
14+
end NumpySpec.DafnyBenchmarks.SynthesisTask135
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
-- Synthesis Task 14: Calculate triangular prism volume
2+
3+
namespace NumpySpec.DafnyBenchmarks.SynthesisTask14
4+
5+
/-- Calculate the volume of a triangular prism -/
6+
def triangularPrismVolume (base height length : Nat) : Nat :=
7+
sorry
8+
9+
/-- Specification: Volume = (base * height * length) / 2 -/
10+
theorem triangularPrismVolume_spec (base height length : Nat)
11+
(hb : base > 0) (hh : height > 0) (hl : length > 0) :
12+
triangularPrismVolume base height length = (base * height * length) / 2 :=
13+
sorry
14+
15+
end NumpySpec.DafnyBenchmarks.SynthesisTask14
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-- Synthesis Task 17: Calculate square perimeter
2+
3+
namespace NumpySpec.DafnyBenchmarks.SynthesisTask17
4+
5+
/-- Calculate the perimeter of a square given its side length -/
6+
def squarePerimeter (side : Nat) : Nat :=
7+
sorry
8+
9+
/-- Specification: Perimeter is 4 times the side length -/
10+
theorem squarePerimeter_spec (side : Nat) (h : side > 0) :
11+
squarePerimeter side = 4 * side :=
12+
sorry
13+
14+
end NumpySpec.DafnyBenchmarks.SynthesisTask17
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
-- Synthesis Task 227: Find minimum of three integers
2+
3+
namespace NumpySpec.DafnyBenchmarks.SynthesisTask227
4+
5+
/-- Find the minimum of three integers -/
6+
def minOfThree (a b c : Int) : Int :=
7+
sorry
8+
9+
/-- Specification: Result is the minimum and is one of the inputs -/
10+
theorem minOfThree_spec (a b c : Int) :
11+
let min := minOfThree a b c
12+
min ≤ a ∧ min ≤ b ∧ min ≤ c ∧
13+
(min = a ∨ min = b ∨ min = c) :=
14+
sorry
15+
16+
end NumpySpec.DafnyBenchmarks.SynthesisTask227
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-- Synthesis Task 264: Calculate dog years
2+
3+
namespace NumpySpec.DafnyBenchmarks.SynthesisTask264
4+
5+
/-- Convert human years to dog years -/
6+
def dogYears (humanYears : Nat) : Nat :=
7+
sorry
8+
9+
/-- Specification: Dog years = 7 * human years -/
10+
theorem dogYears_spec (humanYears : Nat) :
11+
dogYears humanYears = 7 * humanYears :=
12+
sorry
13+
14+
end NumpySpec.DafnyBenchmarks.SynthesisTask264
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-- Synthesis Task 268: Calculate star number
2+
3+
namespace NumpySpec.DafnyBenchmarks.SynthesisTask268
4+
5+
/-- Calculate the nth star number -/
6+
def starNumber (n : Nat) : Nat :=
7+
sorry
8+
9+
/-- Specification: The nth star number is 6n(n-1)+1 -/
10+
theorem starNumber_spec (n : Nat) :
11+
starNumber n = 6 * n * (n - 1) + 1 :=
12+
sorry
13+
14+
end NumpySpec.DafnyBenchmarks.SynthesisTask268
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-- Synthesis Task 279: Calculate nth decagonal number
2+
3+
namespace NumpySpec.DafnyBenchmarks.SynthesisTask279
4+
5+
/-- Calculate the nth decagonal number -/
6+
def nthDecagonalNumber (n : Nat) : Int :=
7+
sorry
8+
9+
/-- Specification: The nth decagonal number is 4n²-3n -/
10+
theorem nthDecagonalNumber_spec (n : Nat) :
11+
nthDecagonalNumber n = 4 * n * n - 3 * n :=
12+
sorry
13+
14+
end NumpySpec.DafnyBenchmarks.SynthesisTask279
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-- Synthesis Task 3: Check if number is non-prime
2+
3+
namespace NumpySpec.DafnyBenchmarks.SynthesisTask3
4+
5+
/-- Check if a number is non-prime (composite) -/
6+
def isNonPrime (n : Nat) : Bool :=
7+
sorry
8+
9+
/-- Specification: Returns true iff n has a divisor between 2 and n-1 -/
10+
theorem isNonPrime_spec (n : Nat) (h : n ≥ 2) :
11+
isNonPrime n = ∃ k : Nat, 2 ≤ k ∧ k < n ∧ n % k = 0 :=
12+
sorry
13+
14+
end NumpySpec.DafnyBenchmarks.SynthesisTask3
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-- Synthesis Task 406: Check if integer is odd
2+
3+
namespace NumpySpec.DafnyBenchmarks.SynthesisTask406
4+
5+
/-- Check if an integer is odd -/
6+
def isOdd (n : Int) : Bool :=
7+
sorry
8+
9+
/-- Specification: Returns true iff n is odd -/
10+
theorem isOdd_spec (n : Int) :
11+
isOdd n = (n % 2 = 1) :=
12+
sorry
13+
14+
end NumpySpec.DafnyBenchmarks.SynthesisTask406
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-- Synthesis Task 432: Calculate median of two lengths
2+
3+
namespace NumpySpec.DafnyBenchmarks.SynthesisTask432
4+
5+
/-- Calculate the median (average) of two positive integers -/
6+
def medianLength (a b : Nat) : Nat :=
7+
sorry
8+
9+
/-- Specification: Median is the average of the two values -/
10+
theorem medianLength_spec (a b : Nat) (ha : a > 0) (hb : b > 0) :
11+
medianLength a b = (a + b) / 2 :=
12+
sorry
13+
14+
end NumpySpec.DafnyBenchmarks.SynthesisTask432

0 commit comments

Comments
 (0)