doesn't work just yet
Links
{-# LANGUAGE DeriveAnyClass, DeriveGeneric #-} | |
import qualified Unbound.Generics.LocallyNameless as Unbound | |
import GHC.Generics (Generic) | |
import Control.DeepSeq (NFData, force) | |
type LName = Unbound.Name LTerm | |
data LTerm | |
= -- | variables `x` |
let | |
defpkgs = builtins.fetchTarball { | |
# Descriptive name to make the store path easier to identify | |
name = "nixos-22.05.1271.babb041b716"; | |
# Commit hash for nixos-unstable as of 2018-09-12 | |
url = "https://releases.nixos.org/nixos/22.05-small/nixos-22.05.1271.babb041b716/nixexprs.tar.xz"; | |
# Hash obtained using `nix-prefetch-url --unpack <url>` | |
sha256 = "0g8vwni83zn6kgkczrm5vwmyhl473rrs9d4k4hn5gfbgfsyv7ls8"; | |
}; | |
in |
Ltac destruct_fun_explicit T t f := | |
match goal with | |
| |- ?G => let Fn := fresh in | |
let Hn := fresh in | |
let En := fresh in | |
enough (forall x : T, G) as Hn; | |
[ apply Hn; exact t | |
| intros Fn; pose (ap := f Fn); | |
destruct Fn; destruct ap eqn: En; subst ap | |
] |