forked from thanhnguyen-aws/plausible
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathFunctionCallsTest.lean
More file actions
34 lines (31 loc) · 1.18 KB
/
Copy pathFunctionCallsTest.lean
File metadata and controls
34 lines (31 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import Plausible.Arbitrary
import Plausible.Chamelean.ArbitrarySizedSuchThat
import Plausible.Chamelean.DeriveConstrainedProducer
import Test.CommonDefinitions.FunctionCallInConclusion
open Plausible
open DecOpt
set_option guard_msgs.diff true
/--
info: Try this generator: instance : ArbitrarySizedSuchThat Nat (fun n_1 => square_of n_1 m_1) where
arbitrarySizedST :=
let rec aux_arb (initSize : Nat) (size : Nat) (m_1 : Nat) : OptionT Plausible.Gen Nat :=
match size with
| Nat.zero =>
OptionTGen.backtrack
[(1, do
let n_1 ← Plausible.Arbitrary.arbitrary;
do
let m_1 ← ArbitrarySizedSuchThat.arbitrarySizedST (fun m_1 => Eq m_1 (HMul.hMul n_1 n_1)) initSize;
return n_1)]
| Nat.succ size' =>
OptionTGen.backtrack
[(1, do
let n_1 ← Plausible.Arbitrary.arbitrary;
do
let m_1 ← ArbitrarySizedSuchThat.arbitrarySizedST (fun m_1 => Eq m_1 (HMul.hMul n_1 n_1)) initSize;
return n_1),
]
fun size => aux_arb size size m_1
-/
#guard_msgs(info, drop warning) in
#derive_generator (fun (n : Nat) => square_of n m)