# HG changeset patch # User paulson # Date 1536768753 -3600 # Node ID e2244e5707dd9ab809c753defbef24ce658d3b73 # Parent 271026e97ca2f39aaf98d1f34a292a8720f8a234# Parent 26be7c0d65a1d67d2d92cf05d857d5cc3c78b70c merged diff -r 26be7c0d65a1 -r e2244e5707dd src/HOL/Data_Structures/Sorting.thy --- a/src/HOL/Data_Structures/Sorting.thy Wed Sep 12 12:51:52 2018 +0100 +++ b/src/HOL/Data_Structures/Sorting.thy Wed Sep 12 17:12:33 2018 +0100 @@ -309,7 +309,8 @@ "c_msort_bu xs = c_merge_all (map (\x. [x]) xs)" lemma length_merge_adj: - "\ even(length xss); \x \ set xss. length x = m \ \ \xs \ set (merge_adj xss). length xs = 2*m" + "\ even(length xss); \xs \ set xss. length xs = m \ + \ \xs \ set (merge_adj xss). length xs = 2*m" by(induction xss rule: merge_adj.induct) (auto simp: length_merge) lemma c_merge_adj: "\xs \ set xss. length xs = m \ c_merge_adj xss \ m * length xss" diff -r 26be7c0d65a1 -r e2244e5707dd src/HOL/HOL.thy --- a/src/HOL/HOL.thy Wed Sep 12 12:51:52 2018 +0100 +++ b/src/HOL/HOL.thy Wed Sep 12 17:12:33 2018 +0100 @@ -81,9 +81,16 @@ judgment Trueprop :: "bool \ prop" ("(_)" 5) axiomatization implies :: "[bool, bool] \ bool" (infixr "\" 25) - and eq :: "['a, 'a] \ bool" (infixl "=" 50) + and eq :: "['a, 'a] \ bool" and The :: "('a \ bool) \ 'a" +notation (input) + eq (infixl "=" 50) +notation (output) + eq (infix "=" 50) + +text \The input syntax for \eq\ is more permissive than the output syntax +because of the large amount of material that relies on infixl.\ subsubsection \Defined connectives and quantifiers\ @@ -134,22 +141,15 @@ "\!x. P" \ "\ (\!x. P)" -abbreviation not_equal :: "['a, 'a] \ bool" (infixl "\" 50) +abbreviation not_equal :: "['a, 'a] \ bool" (infix "\" 50) where "x \ y \ \ (x = y)" -notation (output) - eq (infix "=" 50) and - not_equal (infix "\" 50) - -notation (ASCII output) - not_equal (infix "~=" 50) - notation (ASCII) Not ("~ _" [40] 40) and conj (infixr "&" 35) and disj (infixr "|" 30) and implies (infixr "-->" 25) and - not_equal (infixl "~=" 50) + not_equal (infix "~=" 50) abbreviation (iff) iff :: "[bool, bool] \ bool" (infixr "\" 25)