diff --git a/hol4/.HOLCOMMIT b/hol4/.HOLCOMMIT
index b85ced1d61d6b2e8cfe2219153f36f11a35db688..ead220a1d5bd848889199f5f40bba1f77d0d1722 100644
--- a/hol4/.HOLCOMMIT
+++ b/hol4/.HOLCOMMIT
@@ -1 +1 @@
-9eb85f2893da888359e9bff54ed3bca6467523d1
+6f28c73ae9284a3419a94804032a979c36154808
diff --git a/hol4/ErrorBoundsScript.sml b/hol4/ErrorBoundsScript.sml
index e129830afd73143455cca78d63860ba0f2f5ff9f..6569247e877070672fdb37b239f21f8747d1df8e 100644
--- a/hol4/ErrorBoundsScript.sml
+++ b/hol4/ErrorBoundsScript.sml
@@ -8,6 +8,8 @@ open AbbrevsTheory ExpressionsTheory ExpressionSemanticsTheory RealSimpsTheory
      FloverTactics MachineTypeTheory ExpressionAbbrevsTheory EnvironmentsTheory;
 open preambleFloVer;
 
+val _ = temp_delsimps ["NORMEQ_CONV"]
+
 val _ = new_theory "ErrorBounds";
 
 val _ = Parse.hide "delta"; (* so that it can be used as a variable *)
@@ -424,10 +426,9 @@ Proof
     \\ simp[]
     \\ qspec_then `1 / -nR + 1 / (nR - err)` match_mp_tac real_le_trans2 \\ conj_tac
     >- (match_mp_tac REAL_LE_LADD_IMP
-        \\ simp[GSYM REAL_INV_1OVER]
-        \\ `0 < nR - err /\ nR - err <= nF` by REAL_ASM_ARITH_TAC
-        \\ qpat_abbrev_tac `nRerr = nR - err`
-        \\ fs [REAL_INV_LE_ANTIMONO])
+        \\ rewrite_tac [GSYM REAL_INV_1OVER]
+        \\ ‘0 < nR - err ∧ nR - err ≤ nF’ suffices_by (fs [REAL_INV_LE_ANTIMONO])
+        \\ REAL_ASM_ARITH_TAC)
     >- (` - nR <> 0 /\ nR - err <> 0` by REAL_ASM_ARITH_TAC
         \\ fs [REAL_ADD_RAT]
         \\ `nR - err + - nR = - err` by REAL_ASM_ARITH_TAC
@@ -455,10 +456,8 @@ Proof
       \\ rpt (qpat_x_assum `abs x = y` kall_tac)
       \\ qspec_then `1 / nR + - (1 / (nR + err))` match_mp_tac real_le_trans2 \\ conj_tac
      >- (match_mp_tac REAL_LE_LADD_IMP
-         \\ simp [GSYM REAL_INV_1OVER, GSYM REAL_NEG_INV, REAL_LE_NEG]
          \\ `0 < nR + err /\ nF <= nR + err` by REAL_ASM_ARITH_TAC
-         \\ match_mp_tac REAL_INV_LE_ANTIMONO_IMPR
-         \\ conj_tac \\ REAL_ASM_ARITH_TAC)
+         \\ fs[GSYM REAL_INV_1OVER, REAL_INV_LE_ANTIMONO])
      >- (` - nR <> 0 /\ nR - err <> 0` by REAL_ASM_ARITH_TAC
          \\ `- (1 / (nR + err)) = 1 / - (nR + err)` by (fs [real_div] \\ match_mp_tac REAL_NEG_INV \\ REAL_ASM_ARITH_TAC)
          \\ `- (nR + err) <> 0` by REAL_ASM_ARITH_TAC
@@ -562,10 +561,8 @@ Proof
       \\ simp[]
       \\ qspec_then `1 / -(nR + err) + 1 / nR` match_mp_tac real_le_trans2 \\ conj_tac
       >- (once_rewrite_tac [REAL_ADD_COMM] \\ match_mp_tac REAL_LE_LADD_IMP
-          \\ simp [GSYM REAL_INV_1OVER, REAL_LE_NEG]
           \\ `0 < - (nR + err) /\ nF <= nR + err` by REAL_ASM_ARITH_TAC
-          \\ match_mp_tac REAL_INV_LE_ANTIMONO_IMPR
-          \\ conj_tac \\ REAL_ASM_ARITH_TAC)
+          \\ simp [GSYM REAL_INV_1OVER, REAL_LE_NEG, REAL_INV_LE_ANTIMONO])
       >- (`- nR <> 0 /\ nR - err <> 0` by REAL_ASM_ARITH_TAC
           \\ `- (nR + err) <> 0` by REAL_ASM_ARITH_TAC
           \\ fs [REAL_ADD_RAT]
@@ -581,7 +578,9 @@ Proof
           \\ `0 < (ehi + err) * (ehi + err)` by REAL_ASM_ARITH_TAC
           \\ `0 < - nR * - (nR + err)` by  (match_mp_tac REAL_LT_MUL \\ REAL_ASM_ARITH_TAC)
           \\ `0 < nR * (nR + err)` by REAL_ASM_ARITH_TAC
-          \\ simp[GSYM REAL_NEG_RMUL, REAL_NEG_INV, REAL_NEGNEG]
+          \\ asm_rewrite_tac[GSYM REAL_NEG_RMUL]
+          \\ once_rewrite_tac [REAL_MUL_COMM]
+          \\ asm_rewrite_tac[REAL_NEG_INV, REAL_NEGNEG]
           \\ match_mp_tac REAL_INV_LE_ANTIMONO_IMPR \\ conj_tac
           \\ once_rewrite_tac [POW_2] \\ TRY (REAL_ASM_ARITH_TAC)
           \\ conj_tac \\ TRY(REAL_ASM_ARITH_TAC)
diff --git a/hol4/ErrorIntervalInferenceScript.sml b/hol4/ErrorIntervalInferenceScript.sml
index 69821ef040e8c1a182b53364ba09658c73672bb1..32574f07357013014aac692274efc589ae62245d 100644
--- a/hol4/ErrorIntervalInferenceScript.sml
+++ b/hol4/ErrorIntervalInferenceScript.sml
@@ -86,10 +86,10 @@ Definition inferErrorbound_def:
               upperBoundE1 = maxAbs ive1;
               upperBoundE2 = maxAbs ive2;
               upperBoundE3 = maxAbs ive3;
-              errIntv_prod = multInterval errIve2 errIve3;
-              mult_error_bound = (upperBoundE2 * err3 + upperBoundE3 * err2 + err2 * err3);
-              mAbs = maxAbs (addInterval errIve1 errIntv_prod);
-              eNew = err1 + mult_error_bound + computeError mAbs m
+              errIntv_prod = multInterval errIve1 errIve2;
+              mult_error_bound = (upperBoundE1 * err2 + upperBoundE2 * err1 + err1 * err2);
+              mAbs = maxAbs (addInterval errIntv_prod errIve3);
+              eNew = mult_error_bound + err3 + computeError mAbs m
           in
           SOME (FloverMapTree_insert e (iv_f, eNew) recRes3);
         od
diff --git a/hol4/Infra/FloverTactics.sml b/hol4/Infra/FloverTactics.sml
index 9d4e3bdbb64c1f7a235a43d173baa981df1a3994..3ec2e79dc1b75b9454933c93f36a22b1baaba202 100644
--- a/hol4/Infra/FloverTactics.sml
+++ b/hol4/Infra/FloverTactics.sml
@@ -9,7 +9,7 @@ local open intLib wordsLib in end;
 open set_relationTheory;
 open BasicProvers Defn HolKernel Parse Tactic monadsyntax
      alistTheory arithmeticTheory bagTheory boolLib boolSimps bossLib
-     combinTheory dep_rewrite finite_mapTheory indexedListsTheory lcsymtacs
+     combinTheory dep_rewrite finite_mapTheory indexedListsTheory
      listTheory llistTheory markerLib
      optionTheory pairLib pairTheory pred_setTheory
      quantHeuristicsLib relationTheory res_quanTheory rich_listTheory
diff --git a/hol4/Infra/preambleFloVer.sml b/hol4/Infra/preambleFloVer.sml
index 9bcfe43bfa5410dea9aeb6c67312d699865ad802..645dd137e950205a1a25088745995495560d8769 100644
--- a/hol4/Infra/preambleFloVer.sml
+++ b/hol4/Infra/preambleFloVer.sml
@@ -8,7 +8,7 @@ open set_relationTheory; (* comes first so relationTheory takes precedence *)
 open ASCIInumbersTheory BasicProvers Defn HolKernel Parse SatisfySimps Tactic
      monadsyntax alistTheory alignmentTheory arithmeticTheory bagTheory boolLib
      boolSimps bossLib containerTheory combinTheory dep_rewrite
-     finite_mapTheory indexedListsTheory lcsymtacs listTheory llistTheory
+     finite_mapTheory indexedListsTheory listTheory llistTheory
      markerLib mp_then optionTheory pairLib pairTheory pred_setTheory
      quantHeuristicsLib relationTheory res_quanTheory
      rich_listTheory sortingTheory sptreeTheory stringTheory sumTheory
diff --git a/hol4/IntervalArithScript.sml b/hol4/IntervalArithScript.sml
index 47ac55070e71f27f2de11c1d868e20f403d36970..2bdc189a41ab2317764075eb03cf49a0db560654 100644
--- a/hol4/IntervalArithScript.sml
+++ b/hol4/IntervalArithScript.sml
@@ -6,6 +6,8 @@ open realTheory realLib RealArith
 open AbbrevsTheory ExpressionsTheory RealSimpsTheory FloverTactics;
 open preambleFloVer;
 
+val _ = temp_delsimps ["NORMEQ_CONV"]
+
 val _ = new_theory "IntervalArith";
 
 val _ = temp_overload_on("abs",``real$abs``);
@@ -254,10 +256,10 @@ val interval_inversion_valid = store_thm ("interval_inversion_valid",
            by (match_mp_tac REAL_INV_LE_ANTIMONO \\ REAL_ASM_ARITH_TAC)
       \\ REAL_ASM_ARITH_TAC));
 
-val iv_inv_preserves_valid = store_thm ("iv_inv_preserves_valid",
-  ``!iv.
-      (IVhi iv < 0 \/ 0 < IVlo iv) /\
-      valid iv ==> valid (invertInterval iv)``,
+Theorem iv_inv_preserves_valid:
+  ∀ iv.
+   (IVhi iv < 0 ∨ 0 < IVlo iv) ∧ valid iv ⇒ valid (invertInterval iv)
+Proof
   fs [valid_def, invertInterval_def, IVlo_def, IVhi_def]
   \\ rpt strip_tac
   >- (fs [GSYM REAL_INV_1OVER]
@@ -270,11 +272,12 @@ val iv_inv_preserves_valid = store_thm ("iv_inv_preserves_valid",
       \\ rpt CONJ_TAC \\ fs []
       \\ match_mp_tac REAL_LET_TRANS
       \\ asm_exists_tac \\ fs [])
-  >- (fs[GSYM REAL_INV_1OVER]
-      \\ match_mp_tac REAL_INV_LE_ANTIMONO_IMPR
-      \\ rpt CONJ_TAC \\ fs []
-      \\ match_mp_tac REAL_LTE_TRANS
-      \\ asm_exists_tac \\ fs []));
+  \\ rewrite_tac [GSYM REAL_INV_1OVER]
+  \\ match_mp_tac REAL_INV_LE_ANTIMONO_IMPR
+  \\ rpt CONJ_TAC \\ fs []
+  \\ match_mp_tac REAL_LTE_TRANS
+  \\ asm_exists_tac \\ fs []
+QED
 
 val interval_addition_valid = store_thm ("interval_addition_valid",
 ``!iv1 iv2. validIntervalAdd iv1 iv2 (addInterval iv1 iv2)``,
@@ -431,23 +434,22 @@ Proof
 QED
 
 Theorem interval_division_valid:
-  !(iv1:interval) (iv2:interval) (a:real) (b:real).
-    (IVhi iv2 < 0 \/ 0 < IVlo iv2) /\
-    contained a iv1 /\
-    contained b iv2 ==>
+  ∀ (iv1:interval) (iv2:interval) (a:real) (b:real).
+    (IVhi iv2 < 0 ∨ 0 < IVlo iv2) ∧
+    contained a iv1 ∧
+    contained b iv2 ⇒
     contained (a / b) (divideInterval iv1 iv2)
 Proof
-rpt gen_tac \\ Cases_on `iv2` \\ rewrite_tac (iv_ss @ [real_div, REAL_MUL_LID]) \\
-rpt gen_tac \\ strip_tac \\
+rpt gen_tac \\ Cases_on `iv2` \\ rewrite_tac (iv_ss @ [real_div, REAL_MUL_LID])
+\\ rpt gen_tac \\ strip_tac
 (** TODO: FIXME use qspecl_then **)
-match_mp_tac
+\\ match_mp_tac
   (REWRITE_RULE (iv_ss @ [FST,SND])
-    (SPECL [``iv1:interval``, ``(inv r, inv q):interval``] interval_multiplication_valid)) \\
-fs [] \\
-match_mp_tac
+    (SPECL [``iv1:interval``, ``(inv r, inv q):interval``] interval_multiplication_valid))
+\\ rpt conj_tac \\ TRY (fs[] \\ NO_TAC)
+\\ imp_res_tac
   (REWRITE_RULE
-    (iv_ss @ [FST, SND, real_div, REAL_MUL_LID]) (SPECL [``(q,r):interval``, ``b:real``] interval_inversion_valid)) \\
-fs[]
+    (iv_ss @ [FST, SND, real_div, REAL_MUL_LID]) (SPECL [``(q,r):interval``, ``b:real``] interval_inversion_valid))
 QED
 
 val iv_div_preserves_valid = store_thm ("iv_div_preserves_valid",
diff --git a/hol4/IntervalValidationScript.sml b/hol4/IntervalValidationScript.sml
index f718ca035be8fb2e482913a13adeb543487b8c75..0ec743fdc526fb4d013ce7bc567513b594add2fd 100644
--- a/hol4/IntervalValidationScript.sml
+++ b/hol4/IntervalValidationScript.sml
@@ -15,6 +15,8 @@ open preambleFloVer;
 
 val _ = new_theory "IntervalValidation";
 
+val _ = temp_delsimps ["RMUL_LEQNORM"]
+
 val _ = Parse.hide "delta"; (* so that it can be used as a variable *)
 val _ = temp_overload_on("abs",``real$abs``);
 val _ = temp_overload_on("max",``real$max``);