thys4/posix/FBound.thy
changeset 600 fd068f39ac23
parent 597 19d304554ae1
child 601 ce4e5151a836
--- a/thys4/posix/FBound.thy	Sat Sep 10 22:30:22 2022 +0100
+++ b/thys4/posix/FBound.thy	Mon Sep 12 23:32:18 2022 +0200
@@ -560,7 +560,16 @@
 
 lemma scompsize_aux:
   shows "s_complexity (AALTs bs (rs1 @ distinctWith rs2 eq1 (set rs1))) \<le> s_complexity (AALTs bs (rs1 @ rs2))"
-  sorry
+  apply(induct rs2 arbitrary: rs1)
+   apply simp
+  apply simp
+  apply(case_tac "\<exists>x \<in> set rs1. a ~1 x")
+  using trans_le_add2 apply blast
+  apply simp
+  
+  by (metis List.set_insert)
+
+  
 
 
 
@@ -589,7 +598,28 @@
    apply auto
   by (metis eq_imp_le le_imp_less_Suc less_imp_le_nat rerase_fuse scomp_rerase2)
 
+lemma prf22:
+  shows "\<lbrakk>r1 \<le>1 r2; \<not> r1 ~1 r2\<rbrakk> \<Longrightarrow> s_complexity r1 \<noteq> s_complexity r2"
+  apply(induct rule:eq1.induct)
+                      apply simp+
+                      apply auto
 
+  sorry
+
+
+
+lemma compl_rrewrite_down1:
+  shows "r1 \<le>1 r2 \<Longrightarrow> r1 ~1 r2 \<or> s_complexity r1 < s_complexity r2"
+    apply(subgoal_tac "s_complexity r1 \<le> s_complexity r2")
+  apply(case_tac "r1 ~1 r2")
+    apply simp
+   apply(subgoal_tac "s_complexity r1 \<noteq> s_complexity r2")
+    apply simp
+  using prf22 apply blast
+  by (simp add: scomp_size_reduction)
+  
+lemma leq1_eq1_equal:
+  shows "\<lbrakk>r1 \<le>1 r2;
 
 
 
@@ -598,6 +628,7 @@
 
 lemma compl_rrewrite_down:
   shows "r1 \<le>1 r2 \<Longrightarrow>r1 = r2 \<or> s_complexity r1 < s_complexity r2"
+  apply(subgoal_tac "s_complexity r1 \<le> s_complexity r2")
   
   apply(induct rule: leq1.induct)
                     apply simp