Commit Graph

1122 Commits

Author SHA1 Message Date
microproofs 342676f530
Continue work on integrating the decision tree into code gen 2024-11-01 19:34:51 -04:00
microproofs 61184fbb86
Use Stick breaking set to track previously encountered values for each DecisionTree switch case 2024-11-01 19:34:51 -04:00
microproofs 5eac774443
Commit latest changes so far 2024-11-01 19:34:50 -04:00
microproofs 753b41dc99
Done with hoisting. Now to use it in gen_uplc. I hate RcDoc btw :'/ 2024-11-01 19:34:50 -04:00
microproofs 9601c1034b
Leave todo message for tomorrow 2024-11-01 19:34:49 -04:00
microproofs 7966cc0165
Finish up decision tree and rework it a bit to closely follow how the paper handles wild card patterns 2024-11-01 19:34:48 -04:00
microproofs 3b3fcb666f
Finish with adding constrs 2024-11-01 19:34:48 -04:00
microproofs ecf4592be1
Pass in interner and data types map into decision tree builder 2024-11-01 19:34:47 -04:00
microproofs 64f7886b23
Finished up creating the decision tree for lists. Only constr left. 2024-11-01 19:34:47 -04:00
microproofs b340de2cfd
Incremental commit for dealing with list tails 2024-11-01 19:34:47 -04:00
microproofs ca161d8a68
Continue work on handling lists with tails pattern matching 2024-11-01 19:34:46 -04:00
microproofs def268d966
Now working for all kinds of patterns except for constr 2024-11-01 19:34:46 -04:00
microproofs 9369cbc1a3
Remove some warnings 2024-11-01 19:34:46 -04:00
microproofs 43e859f1ba
Rework Decision Trees to use path to find the subject to test 2024-11-01 19:34:46 -04:00
microproofs 20385a7ecd
Handle tuples and pairs properly now 2024-11-01 19:34:45 -04:00
microproofs 97ee1a8ba6
Start working on using a decision tree for when expr. Also fmt fix. Other Stuff 2024-11-01 19:34:45 -04:00
KtorZ 2489e0fdd0
Fix aiken docs constant generation
Fixes #1048.
2024-10-29 14:15:31 +01:00
KtorZ 93d0191489
Fix latest clippy warnings. 2024-10-25 11:27:28 +02:00
microproofs a7741ec286
chore: Release 2024-10-19 13:45:54 -04:00
KtorZ 4b95db4f88
Fix data-type reification from Void 2024-10-19 10:50:44 +02:00
microproofs 5fd349f571
Remove an unused opcode 2024-10-08 20:32:56 -04:00
microproofs 5d4b3e69b9
Revert "Start working on using a decision tree for when expr. Also fmt fix"
This reverts commit e8f74985d5.
2024-10-08 13:33:05 -04:00
microproofs e8f74985d5
Start working on using a decision tree for when expr. Also fmt fix 2024-10-08 13:30:29 -04:00
microproofs 356d845a9a
chore: Release 2024-10-01 16:14:25 -04:00
microproofs c8731c98c7
Remove prints 2024-10-01 16:09:44 -04:00
microproofs 5fe6e3f77b
Finish simplification changes 2024-10-01 15:57:54 -04:00
microproofs c6c5cddead
Fix ordering of params on standard functions 2024-10-01 13:32:27 -04:00
microproofs 2bbc699a25
Refactor some code to make a define_const AirTree function 2024-10-01 13:32:27 -04:00
KtorZ e8d97028ad
Prevent constant evaluating to generic/unbound functions
Constants are like tiny programs, so they are bound by the same rules
  as validators and other programs. In fact, functions are slightly more
  flexible in that they allow generic constant expressions like
  `List<a>`.

  Yet, there is no way to contain such generic structure that contain
  inhabitants in a way that satisfies the type-checker. In the example
  of `List<a>`, the only inhabitant of that type that we can construct
  is the empty list. Anything else would require holding onto some
  generic value.

  In addition, we can't force literal values into generic annotation, as
  something like:

  ```
  const foo: List<a> = [1, 2, 3]
  ```

  wouldn't type-check either since the right-side would unify to
  `List<Int>`. And again, the only right-hand side that can type-check
  is the empty list without any inhabitant.

  The added restriction on generic function is necessary because while
  we allow constants to return lambda, we cannot (easily) generate UPLC
  that is generic in its argument. By the time we generate UPLC, the
  underlying types have to be known.
2024-10-01 18:37:40 +02:00
KtorZ 0060804d1a
Fix redundant warning when destructuring validator params
This is not a "proper" fix as it simply get rid of the warning
  altogether (whether you use or not the destructured values).

  The reason for removing the warning entirely is because (1) it's
  simpler, but more so (2) there's no impact on the final code produced
  _anyway_. Redundant let bindings are already removed by the compiler;
  and while it's an implicit behaviour that requires a proper warning
  when it's coming from a user-defined assignment; here the redundant
  assignment is introduced by the compiler to begin with as another
  implicit behavior!

  So we have an implicit behaviour triggering a warning on another
  implicit behaviour. Truth is, there's no impact in having those
  parameters destructured and unused. So since users are already not
  aware that this results in an implicit let assignment being inserted
  in place for them; there's no need for the warning at all.
2024-10-01 13:17:00 +02:00
KtorZ 5737556efc
Fix compiler crash around dangling expect/let in traces
Fixes #1029.
2024-10-01 12:24:31 +02:00
Riley-Kilgore 7c6f3278ba Fixed single character patterns using double quotes 2024-09-24 11:54:05 -04:00
microproofs 3d77b5c378
chore: Release 2024-09-20 14:05:15 -04:00
KtorZ a8b37820e8
Fix incorrect warning about unused variable when softcasting without explicit right-pattern.
See note added in code for a rationale.
2024-09-20 15:09:00 +02:00
microproofs 18e79db4b2
Fix edge case with traces off and usage of softcast and hardcast on the same type 2024-09-19 22:29:19 -04:00
KtorZ 83ac723a50
Fix extraneous space added after multiline alternative patterns 2024-09-19 20:24:59 +02:00
KtorZ 3f149ab346
Provide intermediate feedback during property test runs.
Avoid the interface to hang for several seconds without feedback when counterexamples are being simplified. This sends a heads-up to the user to indicate that a research of a counter example is going on.
2024-09-19 20:19:49 +02:00
KtorZ 91843b2c0e
Tweak error output for failed data reification. 2024-09-19 20:18:53 +02:00
KtorZ 47a15cf8b2
Fix formatting of long multiline if/is expressions. 2024-09-15 14:59:47 +02:00
KtorZ 12c0d0bc04
Fix formatter adding extra unnecessary newlines after literal lists clause values or assignments. 2024-09-15 14:40:40 +02:00
microproofs 7047c7720e
chore: Release 2024-09-13 16:52:20 -04:00
KtorZ a9a7a4f977
Fix few formatter annoyances. 2024-09-13 18:53:26 +02:00
KtorZ 799546b654
Show strings as UTF-8 text string during type reification
Instead of defaulting to hex-encoded bytearrays.
2024-09-13 18:34:54 +02:00
KtorZ 9cf908d07f
Fix type reification of Data 2024-09-13 18:34:54 +02:00
KtorZ 4fb13af49f
Fix type reification of PRNG. 2024-09-13 18:34:53 +02:00
microproofs 16e222e997
Clippy fixes 2024-09-12 19:34:40 -04:00
microproofs 3f2de2665d
Clippy fixes 2024-09-12 19:13:31 -04:00
microproofs 362ca2544f
Fixed remaining issue when all parameters passed in to a recursive function were static.
Also fixed issue where modifying the calls in the airtree lead to an out of bounds index.
2024-09-12 17:03:48 -04:00
microproofs 30e66be568
Fix soft casting case 2024-09-12 17:03:48 -04:00
microproofs 49ef3a740c
Cargo tests now pass 2024-09-12 17:03:48 -04:00