aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-09-07 08:39:42 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-09-07 08:39:42 -0400
commite65f5b2410330220d2b136f9ba8c4e86bd5a4dfc (patch)
tree6c1651bf1613e4a7e768326ccd9726a0b4dd5db3 /spec
parent2fa0cf9f5f492aa44af6c2f8b80c570cd3d0caf3 (diff)
Don't require inverses for derived functions that happen to be constant
Diffstat (limited to 'spec')
-rw-r--r--spec/inferred.md9
1 files changed, 4 insertions, 5 deletions
diff --git a/spec/inferred.md b/spec/inferred.md
index 79bbcac3..058710e5 100644
--- a/spec/inferred.md
+++ b/spec/inferred.md
@@ -66,25 +66,24 @@ Several primitives are easily undone, but doing so is not important for BQN prog
### Required modifiers
-The following cases of Self/Swap must be supported. In the table below, a number (n) in parentheses indicates that the function in question is equivalent to the constant function `n˙`, and should be inverted accordingly (check that the argument matches `n`, then return it).
+The following cases of Self/Swap must be supported.
| Fn | 1 | 2
|------|-------|-------
| `+˜` | `÷⟜2` | `+⁼`
-| `-˜` | (0) | `+`
+| `-˜` | | `+`
| `ט` | `√` | `×⁼`
-| `÷˜` | (1) | `×`
+| `÷˜` | | `×`
| `⋆˜` | | `√`
| `√˜` | | `÷⋆⁼`
| `∧˜` | `√` | `∧⁼`
| `∨˜` | `√⌾¬` | `∨⁼`
-| `¬˜` | (1) | `+-1˙`
+| `¬˜` | | `+-1˙`
Inverses of other modifiers and derived functions or modifiers obtained from them are given below. Here the "inverse" of a modifier is another modifier that, if applied to the same operands as the original operator, gives its inverse function. A constant is either a data value or `𝔽˙` for an arbitrary value `𝔽`.
| Mod | Inverse | Requirements
|---------|----------------------|--------------
-| `˙` | `{𝕗⊢⁼𝕩}` |
| `¨` | `{!0<≡𝕩⋄𝕨𝔽⁼¨𝕩}` |
| `⌜` | `{!0<≡𝕩⋄ 𝔽⁼⌜𝕩;}` | Monadic case only
| `˘` | `{!0<=𝕩⋄𝕨𝔽⁼˘𝕩}` |