
diff -r 599239394c51 -r a0f27e21b42c thys2/ClosedForms.thy
--- a/thys2/ClosedForms.thy	Thu Mar 24 21:11:12 2022 +0000
+++ b/thys2/ClosedForms.thy	Fri Mar 25 21:49:53 2022 +0000
@@ -469,29 +469,48 @@
    apply simp
   using rsimpalts_conscons by presburger
 
+lemma no0_flts:
+  shows "RZERO \<notin> set (rflts rs)"
+  apply (induct rs)
+   apply simp
+  apply(case_tac a)
+       apply simp+
+  oops
 
 
 
 lemma distinct_flts_no0:
-  shows "rdistinct (rflts rs) (insert RZERO rset) = rdistinct (rflts rs) rset"
-  apply(induct rs)
+  shows "  rflts (map rsimp (rdistinct rs (insert RZERO rset)))  =
+           rflts (map rsimp (rdistinct rs rset))  "
+  
+  apply(induct rs arbitrary: rset)
    apply simp
   apply(case_tac a)
-  using rflts.simps(2) apply presburger
-  sorry
+  apply simp+
+    apply (smt (verit, ccfv_SIG) rflts.simps(2) rflts.simps(3) rflts_def_idiot)
+  prefer 2
+  apply simp  
+  by (smt (verit, ccfv_threshold) Un_insert_right insert_iff list.simps(9) rdistinct.simps(2) rflts.simps(2) rflts.simps(3) rflts_def_idiot rrexp.distinct(7))
+
 
 
 lemma simp_der_flts:
   shows "rsimp (RALTS (rdistinct (map (rder x) (rflts rs)) rset))= 
          rsimp (RALTS (rdistinct (rflts (map (rder x) rs)) rset))"
 
-  apply(induct rs arbitrary: rset)
+  apply(induct rs)
    apply simp
   apply(case_tac a)
        apply simp
       apply(case_tac "RZERO \<in> rset")
-       apply simp
-      apply simp
+       apply simp+
+  using distinct_flts_no0 apply presburger
+     apply (case_tac "x = x3")
+  prefer 2
+  apply simp
+  using distinct_flts_no0 apply presburger
+  apply(case_tac "RONE \<in> rset")
+     apply simp+
   
   sorry
 




