doc-src/Intro/gate2.thy
author blanchet
Thu, 26 Aug 2010 01:03:08 +0200
changeset 38749 0d2f7f0614d1
parent 105 216d6ed87399
permissions -rw-r--r--
add a penalty for lambda-abstractions; the penalty will kick in only when the goal contains no lambdas, in which case Sledgehammer previously totally disallowed any higher-order construct; this was too drastic; lambdas are dangerous because they rapidly lead to unsound proofs; e.g. COMBI_def COMBS_def not_Cons_self2 with explicit_apply

Gate2 = FOL +
consts  "~&"     :: "[o,o] => o" (infixl 35)
        "#"      :: "[o,o] => o" (infixl 30)
        If       :: "[o,o,o] => o"       ("if _ then _ else _")
rules   nand_def "P ~& Q == ~(P & Q)"    
        xor_def  "P # Q  == P & ~Q | ~P & Q"
        If_def   "if P then Q else R == P&Q | ~P&R"
end