From 115c3dfaf584919ac560af28c19a4d2e2a999a85 Mon Sep 17 00:00:00 2001 From: Nikolaos Bezirgiannis <329939+bezirg@users.noreply.github.com> Date: Fri, 28 Jun 2024 16:39:27 +0200 Subject: [PATCH] constitution: Add executable that creates json envelope (#6267) Co-authored-by: Jamie Bertram --- .../cardano-constitution.cabal | 10 + .../create-json-envelope/Main.hs | 26 + .../GoldenTests/sorted.cbor.size.golden | 2 +- .../GoldenTests/sorted.large.budget.golden | 2 +- .../Validator/GoldenTests/sorted.pir.golden | 64 +- .../GoldenTests/sorted.small.budget.golden | 2 +- .../Validator/GoldenTests/sorted.uplc.golden | 1651 ++++++++-------- .../GoldenTests/unsorted.cbor.size.golden | 2 +- .../GoldenTests/unsorted.large.budget.golden | 2 +- .../Validator/GoldenTests/unsorted.pir.golden | 72 +- .../GoldenTests/unsorted.small.budget.golden | 2 +- .../GoldenTests/unsorted.uplc.golden | 1758 +++++++++-------- .../Constitution/Validator/UnitTests.hs | 1 - 13 files changed, 1874 insertions(+), 1720 deletions(-) create mode 100644 cardano-constitution/create-json-envelope/Main.hs diff --git a/cardano-constitution/cardano-constitution.cabal b/cardano-constitution/cardano-constitution.cabal index eb0fce6d1d6..adf59226c76 100644 --- a/cardano-constitution/cardano-constitution.cabal +++ b/cardano-constitution/cardano-constitution.cabal @@ -127,3 +127,13 @@ test-suite cardano-constitution-test , tasty-hunit , tasty-json , tasty-quickcheck + +executable create-json-envelope + import: lang, ghc-version-support, os-support + hs-source-dirs: create-json-envelope + main-is: Main.hs + build-depends: + , base + , cardano-api ^>=8.48 + , cardano-constitution + , plutus-ledger-api diff --git a/cardano-constitution/create-json-envelope/Main.hs b/cardano-constitution/create-json-envelope/Main.hs new file mode 100644 index 00000000000..617d309183e --- /dev/null +++ b/cardano-constitution/create-json-envelope/Main.hs @@ -0,0 +1,26 @@ +-- editorconfig-checker-disable-file +{-# LANGUAGE OverloadedStrings #-} +module Main where + +import Cardano.Api (File (..), PlutusScriptV3, PlutusScriptVersion (PlutusScriptV3), + Script (PlutusScript), writeFileTextEnvelope) +import Cardano.Api.Shelley (PlutusScript (PlutusScriptSerialised)) +import Cardano.Constitution.Validator.Sorted (defaultConstitutionCode) +import PlutusLedgerApi.Common (serialiseCompiledCode) +import System.Environment (getArgs) +import System.Exit + +main :: IO () +main = do + args <- getArgs + case args of + [file] -> either (error . show) pure + =<< writeFileTextEnvelope (File file) (Just "*BE CAREFUL* that this is compiled from a release commit of plutus and not from master") compiledScript + _ -> die "USAGE: create-json-envelope OUT_FILE" + +compiledScript :: Script PlutusScriptV3 +compiledScript = + PlutusScript PlutusScriptV3 + . PlutusScriptSerialised + . serialiseCompiledCode + $ defaultConstitutionCode diff --git a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.cbor.size.golden b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.cbor.size.golden index 04d25ec2b29..cce01b7dde6 100644 --- a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.cbor.size.golden +++ b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.cbor.size.golden @@ -1 +1 @@ -2095 \ No newline at end of file +2117 \ No newline at end of file diff --git a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.large.budget.golden b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.large.budget.golden index bb776b76e20..223bfad975c 100644 --- a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.large.budget.golden +++ b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.large.budget.golden @@ -1 +1 @@ -ExBudget {exBudgetCPU = ExCPU 584116400, exBudgetMemory = ExMemory 2883157} \ No newline at end of file +ExBudget {exBudgetCPU = ExCPU 592788400, exBudgetMemory = ExMemory 2937357} \ No newline at end of file diff --git a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.pir.golden b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.pir.golden index da02a35d1e0..f5a7442d234 100644 --- a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.pir.golden +++ b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.pir.golden @@ -139,14 +139,14 @@ go ds !`$fOrdInteger_$ccompare` : integer -> integer -> Ordering = \(eta : integer) (eta : integer) -> - ifThenElse + Bool_match + (ifThenElse {Bool} (equalsInteger eta eta) True False) {all dead. Ordering} - (equalsInteger eta eta) (/\dead -> EQ) (/\dead -> - ifThenElse + Bool_match + (ifThenElse {Bool} (lessThanEqualsInteger eta eta) True False) {all dead. Ordering} - (lessThanEqualsInteger eta eta) (/\dead -> LT) (/\dead -> GT) {all dead. dead}) @@ -174,9 +174,9 @@ letrec !euclid : integer -> integer -> integer = \(x : integer) (y : integer) -> - ifThenElse + Bool_match + (ifThenElse {Bool} (equalsInteger 0 y) True False) {all dead. integer} - (equalsInteger 0 y) (/\dead -> x) (/\dead -> euclid y (modInteger x y)) {all dead. dead} @@ -184,14 +184,14 @@ letrec !unsafeRatio : integer -> integer -> Rational = \(n : integer) (d : integer) -> - ifThenElse + Bool_match + (ifThenElse {Bool} (equalsInteger 0 d) True False) {all dead. Rational} - (equalsInteger 0 d) (/\dead -> error {Rational}) (/\dead -> - ifThenElse + Bool_match + (ifThenElse {Bool} (lessThanInteger d 0) True False) {all dead. Rational} - (lessThanInteger d 0) (/\dead -> unsafeRatio (subtractInteger 0 n) (subtractInteger 0 d)) (/\dead -> @@ -252,16 +252,24 @@ (\(x : integer) (y : integer) -> ifThenElse {Bool} (lessThanInteger x y) False True) (\(x : integer) (y : integer) -> - ifThenElse + Bool_match + (ifThenElse + {Bool} + (lessThanEqualsInteger x y) + True + False) {all dead. integer} - (lessThanEqualsInteger x y) (/\dead -> y) (/\dead -> x) {all dead. dead}) (\(x : integer) (y : integer) -> - ifThenElse + Bool_match + (ifThenElse + {Bool} + (lessThanEqualsInteger x y) + True + False) {all dead. integer} - (lessThanEqualsInteger x y) (/\dead -> x) (/\dead -> y) {all dead. dead})) @@ -284,9 +292,13 @@ ds {Bool} (\(n' : integer) (d' : integer) -> - ifThenElse + Bool_match + (ifThenElse + {Bool} + (equalsInteger n n') + True + False) {all dead. Bool} - (equalsInteger n n') (/\dead -> ifThenElse {Bool} @@ -5307,11 +5319,15 @@ (unConstrData ds)))) ~si : pair integer (list data) = unConstrData ds in - ifThenElse + Bool_match + (ifThenElse + {Bool} + (equalsInteger + 5 + (fstPair {integer} {list data} si)) + True + False) {all dead. data} - (equalsInteger - 5 - (fstPair {integer} {list data} si)) (/\dead -> headList {data} @@ -5323,9 +5339,9 @@ ~ds : pair integer (list data) = unConstrData ds !x : integer = fstPair {integer} {list data} ds in - ifThenElse + Bool_match + (ifThenElse {Bool} (equalsInteger 0 x) True False) {all dead. Maybe (List (Tuple2 data data))} - (equalsInteger 0 x) (/\dead -> Just {List (Tuple2 data data)} @@ -5335,9 +5351,9 @@ {data} (tailList {data} (sndPair {integer} {list data} ds)))))) (/\dead -> - ifThenElse + Bool_match + (ifThenElse {Bool} (equalsInteger 2 x) True False) {all dead. Maybe (List (Tuple2 data data))} - (equalsInteger 2 x) (/\dead -> Nothing {List (Tuple2 data data)}) (/\dead -> error {Maybe (List (Tuple2 data data))}) {all dead. dead}) diff --git a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.small.budget.golden b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.small.budget.golden index 50843f1da2f..f0501f61e9d 100644 --- a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.small.budget.golden +++ b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.small.budget.golden @@ -1 +1 @@ -ExBudget {exBudgetCPU = ExCPU 85774882, exBudgetMemory = ExMemory 383294} \ No newline at end of file +ExBudget {exBudgetCPU = ExCPU 88974882, exBudgetMemory = ExMemory 403294} \ No newline at end of file diff --git a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.uplc.golden b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.uplc.golden index d46034c2c0f..1518a4172e9 100644 --- a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.uplc.golden +++ b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/sorted.uplc.golden @@ -42,660 +42,698 @@ (\cse -> (\cse -> (\cse -> - (\fun - ds -> - force - (case - ((\cse -> - (\x -> - force - (force - ifThenElse - (equalsInteger - 0 - x) - (delay - (constr 0 - [ (go - (unMapData - (force - headList - (force - tailList - (force - (force - sndPair) - cse))))) ])) - (delay + (\cse -> + (\cse -> + (\fun + ds -> + force + (case + ((\cse -> + (\x -> + force (force (force ifThenElse (equalsInteger - 2 + 0 x) (delay - (constr 1 - [ ])) + (delay + (constr 0 + [ (go + (unMapData + (force + headList + (force + tailList + (force + (force + sndPair) + cse))))) ]))) (delay - error)))))) - (force - (force - fstPair) - cse)) - (unConstrData - (force - headList - (force - tailList + (delay + (force + (force + (force + ifThenElse + (equalsInteger + 2 + x) + (delay + (delay + (constr 1 + [ ]))) + (delay + (delay + error)))))))))) + (force + (force + fstPair) + cse)) + (unConstrData (force - tailList + headList (force + tailList (force - sndPair) - (unConstrData - ((\cse -> - force - (force - ifThenElse - (equalsInteger - 5 + tailList + (force + (force + sndPair) + (unConstrData + ((\cse -> + force (force (force - fstPair) - cse)) - (delay + ifThenElse + (equalsInteger + 5 + (force + (force + fstPair) + cse)) + (delay + (delay + (force + headList + (force + tailList + (force + (force + sndPair) + cse))))) + (delay + (delay + error))))) + (unConstrData (force headList (force tailList (force + tailList (force - sndPair) - cse)))) - (delay - error))) - (unConstrData - (force - headList - (force - tailList - (force - tailList - (force - (force - sndPair) - (unConstrData - ds)))))))))))))) - [ (\cparams -> - delay - (force - (case - (fun - cparams) - [ (delay - ()) - , (delay - error) ]))) - , (delay - ()) ])) - (runRules - (constr 1 - [ (constr 0 - [ 0 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 30 - , cse ]) ]) - , cse ]) ]) ]) - , (constr 1 + (force + sndPair) + (unConstrData + ds)))))))))))))) + [ (\cparams -> + delay + (force + (case + (fun + cparams) + [ (delay + ()) + , (delay + error) ]))) + , (delay + ()) ])) + (runRules + (constr 1 + [ (constr 0 + [ 0 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 30 + , cse ]) ]) + , cse ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 1 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 100000 + , cse ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 10000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 2 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 24576 + , (constr 0 + [ ]) ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 122880 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 3 + , (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 32768 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 4 + , (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 5000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 5 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 1000000 + , cse ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 5000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 6 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 250000000 + , cse ]) ]) + , cse ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 7 + , (constr 1 + [ (constr 1 + [ cse + , (constr 0 + [ ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 8 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 250 + , cse ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 2000 + , (constr 0 + [ ]) ]) ]) + , cse ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 9 + , (constr 3 + [ (constr 1 + [ cse + , cse ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 10 + , (constr 3 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ (cse + 1000) + , cse ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ (cse + 200) + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 11 + , (constr 3 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ (cse + 10) + , cse ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 16 + , (constr 1 + [ (constr 1 + [ cse + , cse ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 17 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 3000 + , cse ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 6500 + , (constr 0 + [ ]) ]) ]) + , cse ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 18 + , (constr 0 + [ ]) ]) + , (constr 1 + [ (constr 0 + [ 19 + , (constr 2 + [ (constr 1 + [ (constr 3 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ (cse + 25) + , (constr 0 + [ ]) ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ (cse + 5) + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) + , (constr 1 + [ (constr 3 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ (cse + 20000) + , (constr 0 + [ ]) ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ (cse + 5000) + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 20 + , (constr 2 + [ (constr 1 + [ (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 40000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) + , (constr 1 + [ (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 15000000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 21 + , (constr 2 + [ (constr 1 + [ (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 120000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) + , (constr 1 + [ (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 40000000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 22 + , (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 12288 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 23 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 100 + , cse ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 200 + , (constr 0 + [ ]) ]) ]) + , cse ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 24 + , (constr 1 + [ (constr 1 + [ cse + , (constr 0 + [ ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 25 + , (constr 2 + [ (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , cse ]) ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 26 + , (constr 2 + [ (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ (constr 3 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ cse + , cse ]) ]) + , cse ]) ]) + , cse ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 27 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 0 + , (constr 1 + [ 3 + , (constr 0 + [ ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 10 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 28 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 0 + , (constr 1 + [ 18 + , (constr 0 + [ ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 293 + , (constr 0 + [ ]) ]) ]) + , cse ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 29 + , (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 15 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 30 + , (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 10000000000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 31 + , (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 100000000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 32 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 13 + , cse ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 37 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 33 + , (constr 1 + [ (constr 1 + [ cse + , cse ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]))) + (constr 3 + [ (constr 1 [ (constr 0 - [ 1 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 100000 - , cse ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 10000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 2 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 24576 - , (constr 0 - [ ]) ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 122880 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) + [ (constr 1 + [ ]) , (constr 1 - [ (constr 0 - [ 3 - , (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 32768 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) + [ cse , (constr 1 - [ (constr 0 - [ 4 - , (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 5000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 5 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 1000000 - , cse ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 5000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 6 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 250000000 - , cse ]) ]) - , cse ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 7 - , (constr 1 - [ (constr 1 - [ cse - , (constr 0 - [ ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 8 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 250 - , cse ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 2000 - , (constr 0 - [ ]) ]) ]) - , cse ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 9 - , (constr 3 - [ (constr 1 - [ cse - , cse ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 10 - , (constr 3 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ (cse - 1000) - , cse ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ (cse - 200) - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 11 - , (constr 3 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ (cse - 10) - , cse ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 16 - , (constr 1 - [ (constr 1 - [ cse - , cse ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 17 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 3000 - , cse ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 6500 - , (constr 0 - [ ]) ]) ]) - , cse ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 18 - , (constr 0 - [ ]) ]) - , (constr 1 - [ (constr 0 - [ 19 - , (constr 2 - [ (constr 1 - [ (constr 3 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ (cse - 25) - , (constr 0 - [ ]) ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ (cse - 5) - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) - , (constr 1 - [ (constr 3 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ (cse - 20000) - , (constr 0 - [ ]) ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ (cse - 5000) - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 20 - , (constr 2 - [ (constr 1 - [ (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 40000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) - , (constr 1 - [ (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 15000000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 21 - , (constr 2 - [ (constr 1 - [ (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 120000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) - , (constr 1 - [ (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 40000000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 22 - , (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 12288 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 23 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 100 - , cse ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 200 - , (constr 0 - [ ]) ]) ]) - , cse ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 24 - , (constr 1 - [ (constr 1 - [ cse - , (constr 0 - [ ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 25 - , (constr 2 - [ (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , cse ]) ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 26 - , (constr 2 - [ (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ (constr 3 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ cse - , cse ]) ]) - , cse ]) ]) - , cse ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 27 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 0 - , (constr 1 - [ 3 - , (constr 0 - [ ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 10 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 28 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 0 - , (constr 1 - [ 18 - , (constr 0 - [ ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 293 - , (constr 0 - [ ]) ]) ]) - , cse ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 29 - , (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 15 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 30 - , (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 10000000000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 31 - , (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 100000000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 32 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 13 - , cse ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 37 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 33 - , (constr 1 - [ (constr 1 - [ cse - , cse ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]))) + [ cse + , (constr 0 + [ ]) ]) ]) ]) + , cse ]) ])) + (constr 3 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 0 + [ ]) ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ])) (constr 3 [ (constr 1 [ cse @@ -708,98 +746,84 @@ , cse ]) ]) , (constr 0 [ ]) ]) ]) ])) - (constr 3 - [ (constr 1 - [ cse - , (constr 1 + (constr 1 + [ (constr 3 + [ (constr 1 [ (constr 0 - [ (constr 0 + [ (constr 1 [ ]) , (constr 1 [ cse - , (constr 1 - [ cse - , (constr 0 - [ ]) ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ])) - (constr 3 - [ (constr 1 + , (constr 0 + [ ]) ]) ]) + , cse ]) ]) + , (constr 0 + [ ]) ])) + (constr 1 + [ (constr 0 [ (constr 0 - [ (constr 1 - [ ]) + [ ]) + , (constr 1 + [ cse , (constr 1 [ cse - , (constr 1 - [ (cse - 20) - , (constr 0 - [ ]) ]) ]) ]) - , cse ]) ])) - (constr 1 - [ (constr 3 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ cse - , (constr 0 - [ ]) ]) ]) - , cse ]) ]) - , (constr 0 - [ ]) ])) - (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 0 - [ ]) ]) ]) ]) - , (constr 0 - [ ]) ])) - (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ cse - , cse ]) ])) + , (constr 0 + [ ]) ]) ]) ]) + , (constr 0 + [ ]) ])) + (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 0 + [ ]) ]) ]) ])) + (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ (cse + 10) + , cse ]) ])) + (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , cse ]) + , (constr 0 + [ ]) ])) (constr 0 [ (constr 1 [ ]) , (constr 1 - [ cse + [ 0 , (constr 1 - [ (cse - 100) + [ 1000000 , (constr 0 [ ]) ]) ]) ])) (constr 1 [ (constr 0 - [ (constr 0 + [ (constr 2 [ ]) , cse ]) , (constr 0 [ ]) ])) (constr 1 - [ (constr 0 - [ (constr 2 - [ ]) - , cse ]) + [ cse , (constr 0 [ ]) ])) - (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 0 + (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) , (constr 1 - [ 1000000 + [ 500000000 , (constr 0 - [ ]) ]) ]) ])) + [ ]) ]) ]) + , (constr 0 + [ ]) ])) (constr 1 [ (constr 0 [ (constr 0 @@ -815,54 +839,42 @@ , (constr 0 [ ]) ])) (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 500000000 - , (constr 0 - [ ]) ]) ]) + [ cse , (constr 0 [ ]) ])) - (constr 1 - [ cse - , (constr 0 - [ ]) ])) - (constr 1 - [ (cse - 1) - , (constr 0 - [ ]) ])) - (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 1 - , (constr 0 - [ ]) ]) ])) - (constr 0 - [ (constr 1 - [ ]) - , cse ])) - (cse - 5)) + (cse + 10)) + (cse + 2)) + (cse + 20)) + (cse + 100)) + (constr 0 + [ (constr 1 + [ ]) + , cse ])) (cse - 10)) - (cse 4)) - (cse 2)) - (cse 10)) - (cse 1)) - (constr 1 - [ 0 - , (constr 0 - []) ])) - (unsafeRatio 51)) - (unsafeRatio 13)) - (unsafeRatio 9)) - (unsafeRatio 4)) - (unsafeRatio 1)) - (unsafeRatio 0)) - (unsafeRatio 3)) + 5)) + (cse 1)) + (constr 0 + [ (constr 1 + []) + , (constr 1 + [ 1 + , (constr 0 + [ ]) ]) ])) + (cse 1)) + (cse 4)) + (unsafeRatio 3)) + (unsafeRatio 13)) + (unsafeRatio 9)) + (constr 1 + [0, (constr 0 [])])) + (unsafeRatio 0)) + (unsafeRatio 4)) + (unsafeRatio 51)) + (unsafeRatio 1)) (fix1 (\go l -> force (force chooseList) @@ -1007,22 +1019,31 @@ , (\x y -> force (force - ifThenElse - (lessThanEqualsInteger - x - y) - (delay y) - (delay x))) + (force + ifThenElse + (lessThanEqualsInteger + x + y) + (delay + (delay + y)) + (delay + (delay + x))))) , (\x y -> force (force - ifThenElse - (lessThanEqualsInteger - x - y) - (delay x) - (delay - y))) ]) + (force + ifThenElse + (lessThanEqualsInteger + x + y) + (delay + (delay + x)) + (delay + (delay + y))))) ]) preds (unIData eta))) , (\paramValues -> @@ -1045,23 +1066,26 @@ d' -> force (force - ifThenElse - (equalsInteger - n - n') - (delay - (force - ifThenElse - (equalsInteger - d - d') - (constr 0 - [ ]) - (constr 1 - [ ]))) - (delay - (constr 1 - [ ])))) ]) ]) + (force + ifThenElse + (equalsInteger + n + n') + (delay + (delay + (force + ifThenElse + (equalsInteger + d + d') + (constr 0 + [ ]) + (constr 1 + [ ])))) + (delay + (delay + (constr 1 + [ ])))))) ]) ]) , (\ds ds -> case ds @@ -1211,30 +1235,44 @@ (fix1 (\unsafeRatio n d -> force - (force ifThenElse - (equalsInteger 0 d) - (delay error) - (delay - (force - (force ifThenElse - (lessThanInteger d 0) - (delay - (unsafeRatio - (subtractInteger 0 n) - (subtractInteger 0 d))) - (delay - ((\gcd' -> - constr 0 - [ (quotientInteger n gcd') - , (quotientInteger d gcd') ]) - (euclid n d)))))))))) + (force + (force ifThenElse + (equalsInteger 0 d) + (delay (delay error)) + (delay + (delay + (force + (force + (force ifThenElse + (lessThanInteger d 0) + (delay + (delay + (unsafeRatio + (subtractInteger 0 n) + (subtractInteger + 0 + d)))) + (delay + (delay + ((\gcd' -> + constr 0 + [ (quotientInteger + n + gcd') + , (quotientInteger + d + gcd') ]) + (euclid + n + d)))))))))))))) (fix1 (\euclid x y -> force - (force ifThenElse - (equalsInteger 0 y) - (delay x) - (delay (euclid y (modInteger x y))))))) + (force + (force ifThenElse + (equalsInteger 0 y) + (delay (delay x)) + (delay (delay (euclid y (modInteger x y))))))))) (\`$dOrd` ds ds -> fix1 (\go ds -> @@ -1321,15 +1359,18 @@ ds)) (\eta eta -> force - (force ifThenElse - (equalsInteger eta eta) - (delay (constr 0 [])) - (delay - (force - (force ifThenElse - (lessThanEqualsInteger eta eta) - (delay (constr 2 [])) - (delay (constr 1 [])))))))) + (force + (force ifThenElse + (equalsInteger eta eta) + (delay (delay (constr 0 []))) + (delay + (delay + (force + (force + (force ifThenElse + (lessThanEqualsInteger eta eta) + (delay (delay (constr 2 []))) + (delay (delay (constr 1 [])))))))))))) (\ds ds -> case ds diff --git a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.cbor.size.golden b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.cbor.size.golden index 2e407b3cc5f..75b941c9f10 100644 --- a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.cbor.size.golden +++ b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.cbor.size.golden @@ -1 +1 @@ -2087 \ No newline at end of file +2108 \ No newline at end of file diff --git a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.large.budget.golden b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.large.budget.golden index 9c5e8ce880a..ee24d370424 100644 --- a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.large.budget.golden +++ b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.large.budget.golden @@ -1 +1 @@ -ExBudget {exBudgetCPU = ExCPU 884410570, exBudgetMemory = ExMemory 4411827} \ No newline at end of file +ExBudget {exBudgetCPU = ExCPU 906954570, exBudgetMemory = ExMemory 4552727} \ No newline at end of file diff --git a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.pir.golden b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.pir.golden index 048ec91fe8f..33ec488cbc1 100644 --- a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.pir.golden +++ b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.pir.golden @@ -139,14 +139,14 @@ go ds !`$fOrdInteger_$ccompare` : integer -> integer -> Ordering = \(eta : integer) (eta : integer) -> - ifThenElse + Bool_match + (ifThenElse {Bool} (equalsInteger eta eta) True False) {all dead. Ordering} - (equalsInteger eta eta) (/\dead -> EQ) (/\dead -> - ifThenElse + Bool_match + (ifThenElse {Bool} (lessThanEqualsInteger eta eta) True False) {all dead. Ordering} - (lessThanEqualsInteger eta eta) (/\dead -> LT) (/\dead -> GT) {all dead. dead}) @@ -174,9 +174,9 @@ letrec !euclid : integer -> integer -> integer = \(x : integer) (y : integer) -> - ifThenElse + Bool_match + (ifThenElse {Bool} (equalsInteger 0 y) True False) {all dead. integer} - (equalsInteger 0 y) (/\dead -> x) (/\dead -> euclid y (modInteger x y)) {all dead. dead} @@ -184,14 +184,14 @@ letrec !unsafeRatio : integer -> integer -> Rational = \(n : integer) (d : integer) -> - ifThenElse + Bool_match + (ifThenElse {Bool} (equalsInteger 0 d) True False) {all dead. Rational} - (equalsInteger 0 d) (/\dead -> error {Rational}) (/\dead -> - ifThenElse + Bool_match + (ifThenElse {Bool} (lessThanInteger d 0) True False) {all dead. Rational} - (lessThanInteger d 0) (/\dead -> unsafeRatio (subtractInteger 0 n) (subtractInteger 0 d)) (/\dead -> @@ -252,16 +252,24 @@ (\(x : integer) (y : integer) -> ifThenElse {Bool} (lessThanInteger x y) False True) (\(x : integer) (y : integer) -> - ifThenElse + Bool_match + (ifThenElse + {Bool} + (lessThanEqualsInteger x y) + True + False) {all dead. integer} - (lessThanEqualsInteger x y) (/\dead -> y) (/\dead -> x) {all dead. dead}) (\(x : integer) (y : integer) -> - ifThenElse + Bool_match + (ifThenElse + {Bool} + (lessThanEqualsInteger x y) + True + False) {all dead. integer} - (lessThanEqualsInteger x y) (/\dead -> x) (/\dead -> y) {all dead. dead})) @@ -284,9 +292,13 @@ ds {Bool} (\(n' : integer) (d' : integer) -> - ifThenElse + Bool_match + (ifThenElse + {Bool} + (equalsInteger n n') + True + False) {all dead. Bool} - (equalsInteger n n') (/\dead -> ifThenElse {Bool} @@ -5191,9 +5203,13 @@ ds {ParamValue} (\(k' : integer) (i : ParamValue) -> - ifThenElse + Bool_match + (ifThenElse + {Bool} + (equalsInteger k k') + True + False) {all dead. ParamValue} - (equalsInteger k k') (/\dead -> i) (/\dead -> go xs') {all dead. dead})) @@ -5231,11 +5247,15 @@ (unConstrData ds)))) ~si : pair integer (list data) = unConstrData ds in - ifThenElse + Bool_match + (ifThenElse + {Bool} + (equalsInteger + 5 + (fstPair {integer} {list data} si)) + True + False) {all dead. data} - (equalsInteger - 5 - (fstPair {integer} {list data} si)) (/\dead -> headList {data} @@ -5247,9 +5267,9 @@ ~ds : pair integer (list data) = unConstrData ds !x : integer = fstPair {integer} {list data} ds in - ifThenElse + Bool_match + (ifThenElse {Bool} (equalsInteger 0 x) True False) {all dead. Maybe (List (Tuple2 data data))} - (equalsInteger 0 x) (/\dead -> Just {List (Tuple2 data data)} @@ -5259,9 +5279,9 @@ {data} (tailList {data} (sndPair {integer} {list data} ds)))))) (/\dead -> - ifThenElse + Bool_match + (ifThenElse {Bool} (equalsInteger 2 x) True False) {all dead. Maybe (List (Tuple2 data data))} - (equalsInteger 2 x) (/\dead -> Nothing {List (Tuple2 data data)}) (/\dead -> error {Maybe (List (Tuple2 data data))}) {all dead. dead}) diff --git a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.small.budget.golden b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.small.budget.golden index 3d4148fcf90..cf43939887d 100644 --- a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.small.budget.golden +++ b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.small.budget.golden @@ -1 +1 @@ -ExBudget {exBudgetCPU = ExCPU 83144992, exBudgetMemory = ExMemory 369392} \ No newline at end of file +ExBudget {exBudgetCPU = ExCPU 86200992, exBudgetMemory = ExMemory 388492} \ No newline at end of file diff --git a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.uplc.golden b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.uplc.golden index 0f48237984a..147270c1963 100644 --- a/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.uplc.golden +++ b/cardano-constitution/test/Cardano/Constitution/Validator/GoldenTests/unsorted.uplc.golden @@ -41,720 +41,745 @@ (\cse -> (\cse -> (\cse -> - (\cfg -> - (\fun - ds -> - force - (case - ((\cse -> - (\x -> - force - (force - ifThenElse - (equalsInteger - 0 - x) - (delay - (constr 0 - [ (go - (unMapData - (force - headList - (force - tailList - (force - (force - sndPair) - cse))))) ])) - (delay + (\cse -> + (\cfg -> + (\fun + ds -> + force + (case + ((\cse -> + (\x -> + force + (force (force - (force - ifThenElse - (equalsInteger - 2 - x) + ifThenElse + (equalsInteger + 0 + x) + (delay (delay - (constr 1 - [ ])) + (constr 0 + [ (go + (unMapData + (force + headList + (force + tailList + (force + (force + sndPair) + cse))))) ]))) + (delay (delay - error)))))) - (force + (force + (force + (force + ifThenElse + (equalsInteger + 2 + x) + (delay + (delay + (constr 1 + [ ]))) + (delay + (delay + error)))))))))) (force - fstPair) - cse)) - (unConstrData - (force - headList + (force + fstPair) + cse)) + (unConstrData (force - tailList + headList (force tailList (force + tailList (force - sndPair) - (unConstrData - ((\cse -> - force - (force - ifThenElse - (equalsInteger - 5 - (force - (force - fstPair) - cse)) - (delay + (force + sndPair) + (unConstrData + ((\cse -> + force + (force (force - headList - (force - tailList + ifThenElse + (equalsInteger + 5 (force (force - sndPair) - cse)))) - (delay - error))) - (unConstrData - (force - headList + fstPair) + cse)) + (delay + (delay + (force + headList + (force + tailList + (force + (force + sndPair) + cse))))) + (delay + (delay + error))))) + (unConstrData (force - tailList + headList (force tailList (force + tailList (force - sndPair) - (unConstrData - ds)))))))))))))) - [ (\cparams -> - delay - (force - (case - (fun - cparams) - [ (delay - ()) - , (delay - error) ]))) - , (delay - ()) ])) - ((\go - eta -> - go - eta) - (fix1 - (\go - ds -> - force - (case - ds - [ (delay - (constr 0 - [ ])) - , (\x - xs -> - delay - (force - (case + (force + sndPair) + (unConstrData + ds)))))))))))))) + [ (\cparams -> + delay + (force + (case + (fun + cparams) + [ (delay + ()) + , (delay + error) ]))) + , (delay + ()) ])) + ((\go + eta -> + go + eta) + (fix1 + (\go + ds -> + force + (case + ds + [ (delay + (constr 0 + [ ])) + , (\x + xs -> + delay + (force (case - x - [ (\ds - actualValueData -> - validateParamValue - ((\k -> - fix1 - (\go - ds -> - force - (case - ds - [ (delay - error) - , (\ds - xs' -> - delay - (case - ds - [ (\k' - i -> - force - (force - ifThenElse - (equalsInteger - k - k') - (delay - i) - (delay - (go - xs')))) ])) ])) - cfg) - (unIData - ds)) - actualValueData) ]) - [ (delay - (go - xs)) - , (delay - (constr 1 - [ ])) ]))) ]))))) - (constr 1 - [ (constr 0 - [ 0 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 30 - , cse ]) ]) - , cse ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 1 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 100000 - , cse ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 10000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) + (case + x + [ (\ds + actualValueData -> + validateParamValue + ((\k -> + fix1 + (\go + ds -> + force + (case + ds + [ (delay + error) + , (\ds + xs' -> + delay + (case + ds + [ (\k' + i -> + force + (force + (force + ifThenElse + (equalsInteger + k + k') + (delay + (delay + i)) + (delay + (delay + (go + xs')))))) ])) ])) + cfg) + (unIData + ds)) + actualValueData) ]) + [ (delay + (go + xs)) + , (delay + (constr 1 + [ ])) ]))) ]))))) + (constr 1 + [ (constr 0 + [ 0 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 30 + , cse ]) ]) + , cse ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 1 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 100000 + , cse ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 10000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 2 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 24576 + , (constr 0 + [ ]) ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 122880 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 3 + , (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 32768 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 4 + , (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 5000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 5 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 1000000 + , cse ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 5000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 6 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 250000000 + , cse ]) ]) + , cse ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 7 + , (constr 1 + [ (constr 1 + [ cse + , (constr 0 + [ ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 8 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 250 + , cse ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 2000 + , (constr 0 + [ ]) ]) ]) + , cse ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 9 + , (constr 3 + [ (constr 1 + [ cse + , cse ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 10 + , (constr 3 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ (cse + 1000) + , cse ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ (cse + 200) + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 11 + , (constr 3 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ (cse + 10) + , cse ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 16 + , (constr 1 + [ (constr 1 + [ cse + , cse ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 17 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 3000 + , cse ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 6500 + , (constr 0 + [ ]) ]) ]) + , cse ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 18 + , (constr 0 + [ ]) ]) + , (constr 1 + [ (constr 0 + [ 19 + , (constr 2 + [ (constr 1 + [ (constr 3 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ (cse + 25) + , (constr 0 + [ ]) ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ (cse + 5) + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) + , (constr 1 + [ (constr 3 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ (cse + 20000) + , (constr 0 + [ ]) ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ (cse + 5000) + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 20 + , (constr 2 + [ (constr 1 + [ (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 40000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) + , (constr 1 + [ (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 15000000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 21 + , (constr 2 + [ (constr 1 + [ (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 120000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) + , (constr 1 + [ (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 40000000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 22 + , (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 12288 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 23 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 100 + , cse ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 200 + , (constr 0 + [ ]) ]) ]) + , cse ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 24 + , (constr 1 + [ (constr 1 + [ cse + , (constr 0 + [ ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 25 + , (constr 2 + [ (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , cse ]) ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 26 + , (constr 2 + [ (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 1 + [ (constr 3 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ cse + , cse ]) ]) + , cse ]) ]) + , cse ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 27 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 0 + , (constr 1 + [ 3 + , (constr 0 + [ ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 10 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 28 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 0 + , (constr 1 + [ 18 + , (constr 0 + [ ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 293 + , (constr 0 + [ ]) ]) ]) + , cse ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 29 + , (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 15 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 30 + , (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 10000000000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 31 + , (constr 1 + [ (constr 1 + [ cse + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 100000000000 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 32 + , (constr 1 + [ (constr 1 + [ (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 13 + , cse ]) ]) + , (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 37 + , (constr 0 + [ ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) + , (constr 1 + [ (constr 0 + [ 33 + , (constr 1 + [ (constr 1 + [ cse + , cse ]) ]) ]) + , (constr 0 + [ ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ])) + (constr 3 + [ (constr 1 + [ cse , (constr 1 [ (constr 0 - [ 2 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 24576 - , (constr 0 - [ ]) ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 122880 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 [ (constr 0 - [ 3 - , (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 32768 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) + [ ]) , (constr 1 - [ (constr 0 - [ 4 - , (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 5000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 5 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 1000000 - , cse ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 5000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 6 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 250000000 - , cse ]) ]) - , cse ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 7 - , (constr 1 - [ (constr 1 - [ cse - , (constr 0 - [ ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 8 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 250 - , cse ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 2000 - , (constr 0 - [ ]) ]) ]) - , cse ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 9 - , (constr 3 - [ (constr 1 - [ cse - , cse ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 10 - , (constr 3 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ (cse - 1000) - , cse ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ (cse - 200) - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 11 - , (constr 3 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ (cse - 10) - , cse ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 16 - , (constr 1 - [ (constr 1 - [ cse - , cse ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 17 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 3000 - , cse ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 6500 - , (constr 0 - [ ]) ]) ]) - , cse ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 18 - , (constr 0 - [ ]) ]) - , (constr 1 - [ (constr 0 - [ 19 - , (constr 2 - [ (constr 1 - [ (constr 3 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ (cse - 25) - , (constr 0 - [ ]) ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ (cse - 5) - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) - , (constr 1 - [ (constr 3 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ (cse - 20000) - , (constr 0 - [ ]) ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ (cse - 5000) - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 20 - , (constr 2 - [ (constr 1 - [ (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 40000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) - , (constr 1 - [ (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 15000000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 21 - , (constr 2 - [ (constr 1 - [ (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 120000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) - , (constr 1 - [ (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 40000000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 22 - , (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 12288 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 23 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 100 - , cse ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 200 - , (constr 0 - [ ]) ]) ]) - , cse ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 24 - , (constr 1 - [ (constr 1 - [ cse - , (constr 0 - [ ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 25 - , (constr 2 - [ (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , cse ]) ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 26 - , (constr 2 - [ (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ cse - , (constr 1 - [ (constr 3 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ cse - , cse ]) ]) - , cse ]) ]) - , cse ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 27 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 0 - , (constr 1 - [ 3 - , (constr 0 - [ ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 10 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 28 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 0 - , (constr 1 - [ 18 - , (constr 0 - [ ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 293 - , (constr 0 - [ ]) ]) ]) - , cse ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 29 - , (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 15 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 30 - , (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 10000000000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 31 - , (constr 1 - [ (constr 1 - [ cse - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 100000000000 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 32 - , (constr 1 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 13 - , cse ]) ]) - , (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 37 - , (constr 0 - [ ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) - , (constr 1 - [ (constr 0 - [ 33 - , (constr 1 - [ (constr 1 - [ cse - , cse ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ]) ])) + [ cse + , cse ]) ]) + , (constr 0 + [ ]) ]) ]) ])) (constr 3 [ (constr 1 [ cse @@ -764,7 +789,10 @@ [ ]) , (constr 1 [ cse - , cse ]) ]) + , (constr 1 + [ cse + , (constr 0 + [ ]) ]) ]) ]) , (constr 0 [ ]) ]) ]) ])) (constr 3 @@ -775,74 +803,66 @@ , (constr 1 [ cse , (constr 1 - [ (cse - 20) + [ cse , (constr 0 [ ]) ]) ]) ]) , cse ]) ])) - (constr 3 - [ (constr 1 - [ cse - , (constr 1 + (constr 1 + [ (constr 3 + [ (constr 1 [ (constr 0 - [ (constr 0 + [ (constr 1 [ ]) , (constr 1 [ cse - , (constr 1 - [ (cse - 5) - , (constr 0 - [ ]) ]) ]) ]) - , (constr 0 - [ ]) ]) ]) ])) + , (constr 0 + [ ]) ]) ]) + , cse ]) ]) + , (constr 0 + [ ]) ])) (constr 1 - [ (constr 3 - [ (constr 1 - [ (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ cse - , (constr 0 - [ ]) ]) ]) - , cse ]) ]) + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ cse + , (constr 1 + [ cse + , (constr 0 + [ ]) ]) ]) ]) , (constr 0 [ ]) ])) - (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) + (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ cse , (constr 1 [ cse - , (constr 1 - [ cse - , (constr 0 - [ ]) ]) ]) ]) - , (constr 0 - [ ]) ])) + , (constr 0 + [ ]) ]) ]) ])) (constr 0 [ (constr 1 [ ]) , (constr 1 [ cse - , (constr 1 - [ cse - , (constr 0 - [ ]) ]) ]) ])) - (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ cse - , cse ]) ])) - (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , cse ]) - , (constr 0 - [ ]) ])) + , cse ]) ])) + (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) + , cse ]) + , (constr 0 + [ ]) ])) + (constr 0 + [ (constr 1 + [ ]) + , (constr 1 + [ 0 + , (constr 1 + [ 1000000 + , (constr 0 + [ ]) ]) ]) ])) (constr 1 [ (constr 0 [ (constr 2 @@ -850,75 +870,68 @@ , cse ]) , (constr 0 [ ]) ])) - (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 0 + (constr 1 + [ (constr 0 + [ (constr 0 + [ ]) , (constr 1 - [ 1000000 + [ 500000000 , (constr 0 - [ ]) ]) ]) ])) + [ ]) ]) ]) + , (constr 0 + [ ]) ])) (constr 1 - [ (cse - 1) + [ cse , (constr 0 [ ]) ])) (constr 1 - [ cse + [ (constr 0 + [ (constr 0 + [ ]) + , (constr 1 + [ 1000 + , (constr 0 + [ ]) ]) ]) , (constr 0 [ ]) ])) (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 1000 - , (constr 0 - [ ]) ]) ]) + [ cse , (constr 0 [ ]) ])) (constr 1 - [ (constr 0 - [ (constr 0 - [ ]) - , (constr 1 - [ 500000000 - , (constr 0 - [ ]) ]) ]) + [ (cse + 4) , (constr 0 [ ]) ])) - (constr 1 - [ cse - , (constr 0 - [ ]) ])) - (constr 0 - [ (constr 1 - [ ]) - , (constr 1 - [ 1 - , (constr 0 - [ ]) ]) ])) - (constr 0 - [ (constr 1 - [ ]) - , cse ])) - (cse - 100)) + (cse + 1)) + (cse + 10)) + (cse + 2)) + (constr 0 + [ (constr 1 + [ ]) + , cse ])) (cse - 10)) - (cse 2)) - (cse 10)) - (cse 1)) - (cse 4)) - (unsafeRatio 9)) - (constr 1 - [0, (constr 0 [])])) - (unsafeRatio 13)) - (unsafeRatio 0)) - (unsafeRatio 1)) - (unsafeRatio 3)) - (unsafeRatio 4)) + 100)) + (cse 10)) + (constr 0 + [ (constr 1 + []) + , (constr 1 + [ 1 + , (constr 0 + [ ]) ]) ])) + (cse 5)) + (cse 20)) + (unsafeRatio 0 1)) + (unsafeRatio 9)) + (unsafeRatio 3)) + (unsafeRatio 1)) + (unsafeRatio 4)) + (unsafeRatio 13)) + (constr 1 [0, (constr 0 [])])) (unsafeRatio 51)) (fix1 (\go l -> @@ -1001,22 +1014,31 @@ , (\x y -> force (force - ifThenElse - (lessThanEqualsInteger - x - y) - (delay y) - (delay x))) + (force + ifThenElse + (lessThanEqualsInteger + x + y) + (delay + (delay + y)) + (delay + (delay + x))))) , (\x y -> force (force - ifThenElse - (lessThanEqualsInteger - x - y) - (delay x) - (delay - y))) ]) + (force + ifThenElse + (lessThanEqualsInteger + x + y) + (delay + (delay + x)) + (delay + (delay + y))))) ]) preds (unIData eta))) , (\paramValues -> @@ -1039,23 +1061,26 @@ d' -> force (force - ifThenElse - (equalsInteger - n - n') - (delay - (force - ifThenElse - (equalsInteger - d - d') - (constr 0 - [ ]) - (constr 1 - [ ]))) - (delay - (constr 1 - [ ])))) ]) ]) + (force + ifThenElse + (equalsInteger + n + n') + (delay + (delay + (force + ifThenElse + (equalsInteger + d + d') + (constr 0 + [ ]) + (constr 1 + [ ])))) + (delay + (delay + (constr 1 + [ ])))))) ]) ]) , (\ds ds -> case ds @@ -1205,30 +1230,44 @@ (fix1 (\unsafeRatio n d -> force - (force ifThenElse - (equalsInteger 0 d) - (delay error) - (delay - (force - (force ifThenElse - (lessThanInteger d 0) - (delay - (unsafeRatio - (subtractInteger 0 n) - (subtractInteger 0 d))) - (delay - ((\gcd' -> - constr 0 - [ (quotientInteger n gcd') - , (quotientInteger d gcd') ]) - (euclid n d)))))))))) + (force + (force ifThenElse + (equalsInteger 0 d) + (delay (delay error)) + (delay + (delay + (force + (force + (force ifThenElse + (lessThanInteger d 0) + (delay + (delay + (unsafeRatio + (subtractInteger 0 n) + (subtractInteger + 0 + d)))) + (delay + (delay + ((\gcd' -> + constr 0 + [ (quotientInteger + n + gcd') + , (quotientInteger + d + gcd') ]) + (euclid + n + d)))))))))))))) (fix1 (\euclid x y -> force - (force ifThenElse - (equalsInteger 0 y) - (delay x) - (delay (euclid y (modInteger x y))))))) + (force + (force ifThenElse + (equalsInteger 0 y) + (delay (delay x)) + (delay (delay (euclid y (modInteger x y))))))))) (\`$dOrd` ds ds -> fix1 (\go ds -> @@ -1315,15 +1354,18 @@ ds)) (\eta eta -> force - (force ifThenElse - (equalsInteger eta eta) - (delay (constr 0 [])) - (delay - (force - (force ifThenElse - (lessThanEqualsInteger eta eta) - (delay (constr 2 [])) - (delay (constr 1 [])))))))) + (force + (force ifThenElse + (equalsInteger eta eta) + (delay (delay (constr 0 []))) + (delay + (delay + (force + (force + (force ifThenElse + (lessThanEqualsInteger eta eta) + (delay (delay (constr 2 []))) + (delay (delay (constr 1 [])))))))))))) (\ds ds -> case ds diff --git a/cardano-constitution/test/Cardano/Constitution/Validator/UnitTests.hs b/cardano-constitution/test/Cardano/Constitution/Validator/UnitTests.hs index 6a8e68dbf8f..3448fe292fd 100644 --- a/cardano-constitution/test/Cardano/Constitution/Validator/UnitTests.hs +++ b/cardano-constitution/test/Cardano/Constitution/Validator/UnitTests.hs @@ -18,7 +18,6 @@ import Helpers.TestBuilders import PlutusLedgerApi.V3 as V3 import PlutusLedgerApi.V3.ArbitraryContexts qualified as V3 import PlutusTx.Builtins as Tx (lengthOfByteString, serialiseData) -import PlutusTx.IsData.Class import PlutusTx.NonCanonicalRational import PlutusTx.Ratio as Tx import Test.Tasty