![]() |
![]() |
We extend the constructive dependent type theory of the Logical Framework LF with monadic, dependent type constructors indexed with predicates over judgements, called Locks. These monads capture various possible proof attitudes in establishing the judgment of the object logic encoded by an LF type. Standard examples are factoring-out the verification of a constraint or delegating it to an external oracle, or supplying some non-apodictic epistemic evidence, or simply discarding the proof witness of a precondition deeming it irrelevant. This new framework, called Lax Logical Framework, LLFP, is a conservative extension of LF, and hence it is the appropriate metalanguage for dealing formally with side-conditions in rules or external evidence in logical systems. LLFP arises once the monadic nature of the lock type-constructor, LPM,σ[⋅], introduced by the authors in a series of papers, together with Marina Lenisa, is fully exploited. The nature of the lock monads permits to utilize the very Lock destructor, UPM,σ[⋅], in place of Moggi's monadic letT, thus simplifying the equational theory. The rules for UPM,σ[⋅] permit also the removal of the monad once the constraint is satisfied. We derive the meta-theory of LLFP by a novel indirect method based on the encoding of LLFP in LF. We discuss encodings in LLFP of call-by-value λ-calculi, Hoare's Logic, and Fitch-Prawitz Naive Set Theory.