phaseprobe 0.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- phaseprobe/__init__.py +30 -0
- phaseprobe/__main__.py +5 -0
- phaseprobe/adapters/__init__.py +4 -0
- phaseprobe/adapters/loader.py +51 -0
- phaseprobe/adapters/scipy.py +539 -0
- phaseprobe/api.py +64 -0
- phaseprobe/artifacts.py +124 -0
- phaseprobe/cli.py +242 -0
- phaseprobe/config.py +132 -0
- phaseprobe/data/__init__.py +1 -0
- phaseprobe/data/examples/__init__.py +1 -0
- phaseprobe/data/examples/logistic-negative.json +27 -0
- phaseprobe/data/examples/logistic-scan.json +27 -0
- phaseprobe/data/examples/lorenz-negative.json +30 -0
- phaseprobe/data/examples/lorenz-perturb.json +30 -0
- phaseprobe/data/examples/predator-prey-check.json +25 -0
- phaseprobe/data/examples/predator-prey-negative.json +25 -0
- phaseprobe/data/examples/toggle-negative.json +30 -0
- phaseprobe/data/examples/toggle-perturb.json +31 -0
- phaseprobe/engine.py +810 -0
- phaseprobe/errors.py +31 -0
- phaseprobe/examples/__init__.py +1 -0
- phaseprobe/examples/scipy_models.py +151 -0
- phaseprobe/generate.py +72 -0
- phaseprobe/models/__init__.py +36 -0
- phaseprobe/models/_common.py +56 -0
- phaseprobe/models/logistic.py +63 -0
- phaseprobe/models/lorenz.py +64 -0
- phaseprobe/models/predator_prey.py +86 -0
- phaseprobe/models/toggle.py +73 -0
- phaseprobe/replay.py +496 -0
- phaseprobe/reporting.py +173 -0
- phaseprobe/types.py +131 -0
- phaseprobe-0.2.0.dist-info/METADATA +275 -0
- phaseprobe-0.2.0.dist-info/RECORD +38 -0
- phaseprobe-0.2.0.dist-info/WHEEL +4 -0
- phaseprobe-0.2.0.dist-info/entry_points.txt +2 -0
- phaseprobe-0.2.0.dist-info/licenses/LICENSE +201 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0",
|
|
3
|
+
"model": "predator-prey",
|
|
4
|
+
"seed": 31,
|
|
5
|
+
"parameters": {"alpha": 1.1, "beta": 0.4, "delta": 0.1, "gamma": 0.4},
|
|
6
|
+
"model_config": {"initial_state": {"prey": 10.0, "predator": 5.0}},
|
|
7
|
+
"simulation": {
|
|
8
|
+
"steps": 4000,
|
|
9
|
+
"burn_in": 0,
|
|
10
|
+
"dt": 0.005,
|
|
11
|
+
"sample_every": 1,
|
|
12
|
+
"trace_cap": 4000,
|
|
13
|
+
"hard_state_limit": 1000.0
|
|
14
|
+
},
|
|
15
|
+
"tolerances": {"invariant_drift": 1e-7},
|
|
16
|
+
"check": {"analysis": "invariants"},
|
|
17
|
+
"policy": {
|
|
18
|
+
"forbid_findings": true,
|
|
19
|
+
"require_finding": false,
|
|
20
|
+
"require_invariants": true
|
|
21
|
+
},
|
|
22
|
+
"classification_rule": "Both retained populations remain strictly positive, classified as a bounded positive oscillation.",
|
|
23
|
+
"refinement_rule": "Fixed-step RK4 at dt=0.005; compare the analytic first integral against its initial retained value.",
|
|
24
|
+
"invalid_state_policy": "Abort on invalid integration; fail policy on invariant drift or non-positive population."
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0",
|
|
3
|
+
"model": "predator-prey",
|
|
4
|
+
"seed": 31,
|
|
5
|
+
"parameters": {"alpha": 1.1, "beta": 0.4, "delta": 0.1, "gamma": 0.4},
|
|
6
|
+
"model_config": {"initial_state": {"prey": 10.0, "predator": 5.0}},
|
|
7
|
+
"simulation": {
|
|
8
|
+
"steps": 80,
|
|
9
|
+
"burn_in": 0,
|
|
10
|
+
"dt": 0.25,
|
|
11
|
+
"sample_every": 1,
|
|
12
|
+
"trace_cap": 80,
|
|
13
|
+
"hard_state_limit": 1000.0
|
|
14
|
+
},
|
|
15
|
+
"tolerances": {"invariant_drift": 1e-7},
|
|
16
|
+
"check": {"analysis": "invariants"},
|
|
17
|
+
"policy": {
|
|
18
|
+
"forbid_findings": true,
|
|
19
|
+
"require_finding": false,
|
|
20
|
+
"require_invariants": true
|
|
21
|
+
},
|
|
22
|
+
"classification_rule": "Same boundedness classifier as the refined-solver positive control.",
|
|
23
|
+
"refinement_rule": "Deliberately coarse fixed step demonstrates the invariant-drift policy control.",
|
|
24
|
+
"invalid_state_policy": "Abort on invalid integration; otherwise fail the declared invariant policy."
|
|
25
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0",
|
|
3
|
+
"model": "genetic-toggle",
|
|
4
|
+
"seed": 47,
|
|
5
|
+
"parameters": {"alpha_u": 3.0, "alpha_v": 3.0, "hill_u": 2.0, "hill_v": 2.0},
|
|
6
|
+
"model_config": {"initial_state": {"u": 3.0, "v": 0.2}},
|
|
7
|
+
"simulation": {
|
|
8
|
+
"steps": 1500,
|
|
9
|
+
"burn_in": 0,
|
|
10
|
+
"dt": 0.02,
|
|
11
|
+
"sample_every": 2,
|
|
12
|
+
"trace_cap": 750,
|
|
13
|
+
"hard_state_limit": 100.0
|
|
14
|
+
},
|
|
15
|
+
"tolerances": {"dominance": 0.05, "state_bound": 10.0},
|
|
16
|
+
"perturb": {
|
|
17
|
+
"dimension": "v",
|
|
18
|
+
"start": 0.01,
|
|
19
|
+
"stop": 0.5,
|
|
20
|
+
"points": 6,
|
|
21
|
+
"scale": "linear",
|
|
22
|
+
"predicate": "classification-change",
|
|
23
|
+
"divergence_threshold": 1.0,
|
|
24
|
+
"refine_iterations": 6,
|
|
25
|
+
"repeatability": 2
|
|
26
|
+
},
|
|
27
|
+
"classification_rule": "Same terminal dominance classifier as the positive toggle example.",
|
|
28
|
+
"refinement_rule": "No refinement if all bounded perturbations retain the baseline qualitative class.",
|
|
29
|
+
"invalid_state_policy": "Abort on invalid integration."
|
|
30
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0",
|
|
3
|
+
"model": "genetic-toggle",
|
|
4
|
+
"seed": 47,
|
|
5
|
+
"parameters": {"alpha_u": 3.0, "alpha_v": 3.0, "hill_u": 2.0, "hill_v": 2.0},
|
|
6
|
+
"model_config": {"initial_state": {"u": 3.0, "v": 0.2}},
|
|
7
|
+
"simulation": {
|
|
8
|
+
"steps": 1500,
|
|
9
|
+
"burn_in": 0,
|
|
10
|
+
"dt": 0.02,
|
|
11
|
+
"sample_every": 2,
|
|
12
|
+
"trace_cap": 750,
|
|
13
|
+
"hard_state_limit": 100.0
|
|
14
|
+
},
|
|
15
|
+
"tolerances": {"dominance": 0.05, "state_bound": 10.0},
|
|
16
|
+
"perturb": {
|
|
17
|
+
"dimension": "v",
|
|
18
|
+
"start": 0.1,
|
|
19
|
+
"stop": 4.0,
|
|
20
|
+
"points": 9,
|
|
21
|
+
"scale": "linear",
|
|
22
|
+
"predicate": "classification-change",
|
|
23
|
+
"target_classification": "v-dominant",
|
|
24
|
+
"divergence_threshold": 1.0,
|
|
25
|
+
"refine_iterations": 8,
|
|
26
|
+
"repeatability": 2
|
|
27
|
+
},
|
|
28
|
+
"classification_rule": "Classify the terminal state as u-dominant, v-dominant, or balanced using a declared absolute dominance tolerance.",
|
|
29
|
+
"refinement_rule": "Ascending bounded v perturbations, then bracketed binary refinement and exact repeatability confirmation.",
|
|
30
|
+
"invalid_state_policy": "Abort on invalid integration or concentration outside the hard state limit."
|
|
31
|
+
}
|