HybridLF: a system for reasoning in higher-order abstract syntax