Ondrej Kuncar

Learn More
Quotients, subtypes, and other forms of type abstraction are ubiquitous in formal reasoning with higher-order logic. Typically, users want to build a library of operations and theorems about an abstract type, but they want to write definitions and proofs in terms of a more concrete representation type, or " raw " type. Earlier work on the Isabelle Quotient(More)
The paper shows how the code generator of Isabelle/HOL supports data refinement, i.e., providing efficient code for operations on abstract types, e.g., sets or numbers. This allows all tools that employ code generation, e.g., Quickcheck or proof by evaluation, to compute with these abstract types. At the core is an extension of the code generator to deal(More)
Overloaded constant definitions are an important feature of the proof assistant Isabelle because they allow us to provide Haskell-like type classes to our users. There has been an ongoing question as to under which conditions we can practically guarantee that overloading is a safe theory extension, i.e., preserves consistency or is conservative. The natural(More)
The interactive theorem prover Isabelle/HOL is based on the well understood Higher-Order Logic (HOL), which is widely believed to be consistent (and provably consistent in set theory by a standard semantic argument). However , Isabelle/HOL brings its own personal touch to HOL: overloaded constant definitions, used to achieve Haskell-like type classes in the(More)
This paper describes the integration of Squolem, Quantified Boolean Formulas (QBF) solver, with the interactive theorem prover HOL Light. Squolem generates certificates of validity which are based on witness functions. The certificates are checked in HOL Light by constructing proofs based on these certificates. The presented approach allows HOL Light users(More)
Modern day web consists of a variety of complex workflow applications (e.g., Amazon, Facebook, EasyChair, Microsoft HealthVault, etc.), which involve processing of sensitive data on both the server and the browser (client) side. These systems often deal with confidential information like credit card details, medical and health-related data, location(More)