Apply the following COI reduction rule on Exists.
- ∃ (n : t), e ===> e (if isSortOrInhabited t ∧ ¬ e.hasLooseBVar e 0).
Note that
∃ (n : t), eis internally represented asapp (app Exists t) (lam n t e _). Assmes that f := Expr.const ``Exists An error is trigerred if args.size ≠ 2.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Apply simplification/normalization rules on Exists.
Equations
- Blaster.Optimize.optimizeExists? (Lean.Expr.const `Exists us) args = do let a ← Blaster.Optimize.coiExists (Lean.Expr.const `Exists us) args pure (some a)
- Blaster.Optimize.optimizeExists? f args = pure none