You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{-# RULES "abs/let-float" [~]
forall x v.
abs (let bnd = v in x)
=
let bnd = v
in
abs x
#-}
When I try to bring it into a lemma with rule-to-lemma (or look at it with show-rule), it "becomes":
abs/let-float (Not Proven)
∀ △ △ $dLift $d~ x v.
abs ▲ $dLift $d~
(case v of bnd ▲
_ → x)
≡
case HEq_sc ▲ ▲ ▲ ▲ ($p1~ ▲ ▲ ▲ $d~) of cobox ▲
_ →
case v of bnd ▲
_ → abs ▲ $dLift (($d~ ▹ (■ ∷ ▲ ~R ▲)) ▹ (■ ∷ ▲ ~R ▲)) x
I imagine this is something GHC is doing, not HERMIT. As a result of this (I think), I cannot apply it where I would like to (where there is a let, not a case). I know that case and let have different semantics in Core with regard to strictness, so I imagine this is why I can't apply it in those places.
Is there a way around this or a way to tell it to keep it as let?
The text was updated successfully, but these errors were encountered:
I have a RULE:
When I try to bring it into a lemma with
rule-to-lemma
(or look at it withshow-rule
), it "becomes":I imagine this is something GHC is doing, not HERMIT. As a result of this (I think), I cannot apply it where I would like to (where there is a
let
, not acase
). I know thatcase
andlet
have different semantics in Core with regard to strictness, so I imagine this is why I can't apply it in those places.Is there a way around this or a way to tell it to keep it as
let
?The text was updated successfully, but these errors were encountered: