Pure/Examples/Higher_Order_Logic.thy defines implication like this:
axiomatization imp :: "o ⇒ o ⇒ o" (infixr ‹⟶› 25)
But in HOL/HOL.thy it looks a bit different:
axiomatization implies :: "[bool, bool] ⇒ bool" (infixr ‹⟶› 25)
I don't understand the meaning of [bool, bool] here. The grammar in section 8.4.3 "The Pure grammar" of the Isabelle reference indicates that a type may have the form [type, ..., type], but doesn't explain it at all. Any pointers?
the bracket notation is the same as an arrow
it exists both for types and terms
(Terms use [[ ... ]] )
Aha, thanks. If this notation has the same meaning, why does it exist? Because someone thinks it looks nicer? Also, is this documented somewhere?
You can here https://stackoverflow.com/questions/15939265/how-do-i-display-brackets-around-assumptions-in-isabelle-jedit how to activate it.
Some people like it more
Last updated: Mar 25 2026 at 02:29 UTC