modus
modus copied to clipboard
Builtin predicates
- [x] Basic support & SLD resolution for built-in predicates (https://github.com/modus-continens/modus/pull/39)
- [x] Properly augment the proof tree to indicate what constants were used to unify those built-ins. I.e. we should be able to see run("apt ...") directly in the tree easily.
- [x] Implement more built-in stuff
- [x] Image instructions - from, run, copy, etc.
- [ ] Logic predicates - semver_greater, more string stuff (?), numeric calculations (?), parsing (
path(str, parent, filename)
) - [x] Operators?
I'm going to go with storing the arguments for builtin-predicates like run in ClauseID for now, since this is the easiest and it's not obvious what variable names should we use if we want to store it in e.g. valuations... And when transpiling to Dockerfile we can just match the clauseID, if it's e.g. Run(s) emit "RUN {s}"
Useful doc on URL format https://github.com/bagder/docs/blob/master/URL-interop.md